Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: CL | DM;

Вниз

Загрузка 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
1-1110744759
DremLIN
2005-03-13 23:12
2005.03.27
Delphi, CLX-проект, handle


1-1110913377
Sewix
2005-03-15 22:02
2005.03.27
Нехватает Longword


3-1109700634
mefisto
2005-03-01 21:10
2005.03.27
Подключение файлов .mdf и .ldf сервера MSSQL7 к MSSQL2000


1-1110788781
denis24
2005-03-14 11:26
2005.03.27
Работа со списком указателей


3-1109837726
mariya_mezenceva
2005-03-03 11:15
2005.03.27
запрос, котопый выбирает данные из двух баз