Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизЗагрузка C шной DLL из Delphi Найти похожие ветки
← →
naum (2005-03-17 10:10) [0]Есть проблема subj. Короче я в Сях ровным счетом ни бум-бум. Есть контора в которой написали для нашего приложения модуль. Но экспортируемые функции там обернули так, что я теперь разобраться не могу. Во-первых: имена функций выглядят приблизительно так (за вместо "avls_connect") - "?avls_connect@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H00@Z"
как им обернуть ее правильно надо, чтобы я мог ее вызвать? Я уже пробовал, по приведенному имени в dll нахожу адрес этой функции (все находится нормально), но там и с вызовом проблема возникает. Может у кого мысли есть?
← →
naum (2005-03-17 10:42) [1]прошу прощение, там разобрались, переделали на definition. тут еще вопрос встал :) в Си прототип выглядит так:
void avls_connect( const std::string& ip, int port, const std::string& login, const std::string& password )
правильно ли я сообразил его на Delphi:
procedure avls_connect(const ip: PChar; port: Integer; const login: PChar; const password: PChar); external "avls_dll.dll";
где перед вызовом:
procedure Connect(IP,Login,Password: String; Port: Integer);
...
pIP,pLogin,pPassword: PChar;
...
GetMem(pIP,Length(IP)+1); StrPCopy(pIP,IP);
GetMem(pLogin,Length(Login)+1); StrPCopy(pLogin,Login);
GetMem(pPassword,Length(Password)+1);StrPCopy(pPassword,Password);
avls_connect(pIP,Port,pLogin,pPassword);
...
?
← →
palva1 (2005-03-17 11:03) [2]Неправильно.
std::string это объект STL, которого нет в библиотеках Delphi. Наверно, можно как-нибудь извратиться на Delphi, но на вашем месте я бы перешел на C-Builder. Либо выкатил претензии к авторам библиотеки. Писать DLL с использованием STL с неизбежностью означает возможность использования этой DLL только из той же системы программирования и с тем же вариантом STL.
← →
KSergey © (2005-03-17 11:13) [3]Вообще-т palva1 уже все сказал, но позволю себе выплеснуть эмоции.
Прикольные сишники вам попались :) Них.. не секут :)
Не думал, что среди сишников есть такие... Что первый пост "кроме наших ++ нет ничего", что второй "мы только про stl знаем".
Как говорится - смените поставщика.
> но на вашем месте я бы перешел на C-Builder.
> DLL только из той же системы программирования и с тем же
> вариантом STL.
Вот в чем и штука! А ведь кроме C-Builder есть еще и другие С++ компиляторы ;) На чем те ребята изголялись - хрен знает... (ну разве что вы опознали по искажению имен именно билдер...)
← →
naum (2005-03-17 11:45) [4]на что можно проще всего заменить std::string товарищам? вам, господа, огромное спасибо за разъяснение ситуации.
← →
naum (2005-03-17 12:16) [5]ветку можно закрывать! огромное спасибо еще раз KSergey & palva1
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c