![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Типы в C# и Delphi [D6]
zhlob © (2005-09-01 13:45:00)Вопрос следующий:
есть dll-ка, написанная на C#, в ней функция, одним из параметров которой являестся Dest *dest(указатель на структуру Dest). А по сути это ссылка на массив (т.е. в C# обращаются к нему так: dest[i].d=..).
написан проект на Delhpi, которому надо получать этот список значений. Описана эта структура (Dest), параметр пытался передавать по-разному:
1. var dest: dest;
2. PDest = ^Dest;
dest: PDest;
3. TDest: array[0..15] of Dest;
PDest = ^TDest;
dest: PDest; и т.д.
но всегда получаю не список, а только первый элемент.
Подскажите, плиз, как описать?? Что делать?? Уже голова кипит!!!
Игорь Шевченко (2005-09-01 14:46:00) [1]
> есть dll-ка, написанная на C#
Под .Net, надо полагать ?
begin...end (2005-09-01 14:04:00) [2]> zhlob (01.09.05 13:45)
Я, видимо, не полностью понялл вопрос, и [1], вероятно, не в кассу.
> написан проект на Delhpi, которому надо получать этот список
> значений.
Если есть сишная функция в DLL, и она должна заполнять этот список, то следует объявить переменную-массив с нужным количеством элементов и передать указатель на неё в функцию:
type
TDestArray = array [0..X] of Dest;
var
DestArray: TDestArray;
begin
Func(..., @DestArray, ...)
end.
begin...end (2005-09-01 13:53:00) [3]{$R-}
type
TDestArray = array [0..0] of Dest;
PDestArray = ^TDestArray;
доступ к i-му элементу массива: PDestArray(параметр_функции)[i]