Основная проблема заключается в том, что C ++ CString и Delphi String являются несовместимыми типами.
Если вы хотите передавать данные таким образом, вам следует использовать либо символьные массивы фиксированной длины, либо строки с нулевым окончанием в стиле C (PChar в Delphi).
C ++ будет выглядеть примерно так:
char Dealer[100][10];
Пожалуйста, отредактируйте, если не так - прошло много лет с тех пор, как я написал C-код
Delphi
Dealer : packed array[0..9, 0..99] of char;
или
type
TDealer = packed array[0..99] of char;
...
Dealer : arry[0..9] of TDealer;
или при использовании C-строки (TCHAR в коде API)
Dealer: array[0..9] of PAnsiChar; // or PWideChar if source is UCS-16
Также обратите внимание, что String, Char (и, следовательно, PChar) изменились с одного байта на двухбайтовый (UCS 16) в Delphi 2009.
Другие типы данных также могут отличаться, например, В Delphi Word 16-битный, но может отличаться в C ++. Если возможно, используйте определенные типы, которые являются общими в Windows API, такие как USHORT вместо unsigned int и Word