|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Передача строк в DLL
Доброго дня.
Есть программа, написанная на D7, она передает в COM-объект (DLL), написанный на D10.3, данные коннекта к БД. Впрочем не суть. Строки по приходу превращаются в какую-то китайскую ерунду. Видимо это связанно с переходом строк делфей на UTF8. Собственно вопрос - как передать строки, чтоб далее их можно было использовать по назначению? Переписывать интерфейс не хочется, как и прогу, которая на D7. Вот как объявлены функции COM-интерфейса Код:
TOb = class(TComObject, IMethodManage) protected {Declare IMethodManage methods here} function SetDBParams(DBName, DBUserName, DBUserPassWord: String): Integer; stdcall;// end; |
#2
|
|||
|
|||
Ну, вообще, String не является безопасным типом для COM. Там должен быть как минимум, WideString, который является двухбайтовым массивом символов, ограниченным нулем. Ну и stdcall, если я правильно помню, в COM не нужен, там все регулируется самой подсистемой COM.
|