Size: a a a

2020 April 27

DB

Dmitry Belkevich in Delphi & Lazarus
Roman Roman
И возвращать из функции, как я был неприятно удивлен
???
источник

K

Kass in Delphi & Lazarus
Viktor Akselrod
если что, динамические массивы тоже нельзя передавать через границу dll 🙂
Почему? При передаче размерность на ту сторону если указать
источник

VA

Viktor Akselrod in Delphi & Lazarus
Dmitry Belkevich
если менеджер один то насколько я помню есть шанс
ShareMem
ну и обсуждается конретный вопрос, где версии разные
источник

VA

Viktor Akselrod in Delphi & Lazarus
Kass
Почему? При передаче размерность на ту сторону если указать
потому что автотип
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Viktor Akselrod
ShareMem
ну и обсуждается конретный вопрос, где версии разные
ну в общем виде нельзя. тут да
источник

RR

Roman Roman in Delphi & Lazarus
Function ff(): array of array of sting; ругается . Не помню как, щас не за компом
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Roman Roman
Function ff(): array of array of sting; ругается . Не помню как, щас не за компом
Тип опиши и даст
источник

RR

Roman Roman in Delphi & Lazarus
Но блин, это же почти примитив
источник

RR

Roman Roman in Delphi & Lazarus
В других языках array спокойно ходит
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Roman Roman
Но блин, это же почти примитив
type
TStrArray = array of array of string;

function Test: TStrArray;
begin

end;
источник

DB

Dmitry Belkevich in Delphi & Lazarus
ну вот в делфи только так
источник

DB

Dmitry Belkevich in Delphi & Lazarus
можно вернуть только определенный тип. строгая типазация
источник

VA

Viktor Akselrod in Delphi & Lazarus
Roman Roman
В других языках array спокойно ходит
причину написали выше - разные менеджеры памяти.
а не смотря на свою простоту динамический массив это не так просто.
подсчет ссылок, автонициализация, автофинализация и тд
источник

K

Kass in Delphi & Lazarus
Roman Roman
В других языках array спокойно ходит
В dll не факт
источник

GB

George Bakhtadze in Delphi & Lazarus
Roman Roman
Тут я виноват не полностью вопрос задал изначально. Потому что в идеале нужно передать датасет
странно, что тебе до сих пор не посоветовали сохранить его в базу и потом его же оттуда вычитать. еще меньше строк чем для жсон (наверное)
источник

АВ

Александр В in Delphi & Lazarus
Roman Roman
И возвращать из функции, как я был неприятно удивлен
Можно, если тип определить типа, TArrayOfByte = array of array of byte и т.д.
источник

K

Kass in Delphi & Lazarus
Viktor Akselrod
причину написали выше - разные менеджеры памяти.
а не смотря на свою простоту динамический массив это не так просто.
подсчет ссылок, автонициализация, автофинализация и тд
То есть, даже через setlengt на другой стороне?
источник

RR

Roman Roman in Delphi & Lazarus
Dmitry Belkevich
type
TStrArray = array of array of string;

function Test: TStrArray;
begin

end;
Да, я так попробовал, но он если его ещё где то определить, он пишет что они разные
источник

RR

Roman Roman in Delphi & Lazarus
George Bakhtadze
странно, что тебе до сих пор не посоветовали сохранить его в базу и потом его же оттуда вычитать. еще меньше строк чем для жсон (наверное)
Дак задача и есть соединение с базой )
источник

VA

Viktor Akselrod in Delphi & Lazarus
Kass
То есть, даже через setlengt на другой стороне?
да. никаких вариантов, кроме использования общего менеджера памяти
http://docwiki.embarcadero.com/RADStudio/Rio/en/Writing_Dynamically_Loaded_Libraries#Shared-Memory_Manager
источник