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

Вниз

Подключение DLL   Найти похожие ветки 

 
Dimman1 ©   (2004-02-11 11:08) [0]

Есть два файла: *.LIB и *.DLL. Надо использовать функцию из библитеки *.DLL. При импорте функции так:
function LoadMind(s:pchar):bool; pascal; external "SmartBot.dll" name "LoadMind";
Пишет "Не найдена точка входа...". Через LoadLibrary тоже самое.
По идее надо использовать файл SmartBot.lib. Как это реализвать на Delphi?


 
Amoeba + PVOzerski   (2004-02-11 11:46) [1]

1) Разрядность? 2) Вы уверены, что соглашения о вызовах именно Pascal? Потому как экзотка даже для Delphi (в 32-разрядных версиях по умолчанию принято register, стандарт для WinAPI - stdcall, в некоторых сторонних библиотеках - cdecl. Pascal обычно только для win16. 3) О .lib забудьте, переписывайте юнит на основе хедер-файла. 4) Обратите внимание на name mangling - внутренне представление имен функций в dll. Утилита tdump вам поможет.


 
Dimman1 ©   (2004-02-11 12:32) [2]

1) Разрядность - 32.
2) да, именно Pascal в документации к библиотеке написано так:
bool PASCAL LoadMind(char* pszMindFile);
Да и даже если писать stdcall, результат такой же.
3) а без переписывания можно обойтись? Точно знаю, что люди на билдере ее цепляли.
4) Имя функции написано правильно вот что tdump написал:
Exports from SmartBot.dll
3 exported name(s), 3 export addresse(s). Ordinal base is 1.
Sorted by Name:
RVA Ord. Hint Name
-------- ---- ---- ----
00003970 1 0000 ?GetReplyTo@@YGPBDPBD@Z
00003A70 2 0001 ?LoadMind@@YG_NPAD@Z
00003B10 3 0002 ?SaveMind@@YG_NPAD@Z


 
PVOzerski ©   (2004-02-11 12:54) [3]

>Да и даже если писать stdcall, результат такой же.
Это потому, что 1 параметр.
>
>bool PASCAL LoadMind(char* pszMindFile);
function LoadMind(pszMindFile:pChar):longbool;pascal;
external "SmartBot.dll" name "?LoadMind@@YG_NPAD@Z";

P.S. Надеюсь, это не метод класса?


 
PVOzerski ©   (2004-02-11 12:55) [4]

А то и так:
function LoadMind(pszMindFile:pChar):longbool;pascal;
external "SmartBot.dll" index 2;


 
PVOzerski ©   (2004-02-11 12:55) [5]

А то и так:
function LoadMind(pszMindFile:pChar):longbool;pascal;
external "SmartBot.dll" index 2;


 
Dimman1 ©   (2004-02-11 13:18) [6]

Большое СПАСИБО!
С индексами прокатило:)



Страницы: 1 вся ветка

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-6129
Erik
2004-02-19 16:17
2004.03.03
Создание динамической струскуры хранения данных.


3-5947
Санек
2004-02-06 10:40
2004.03.03
FastReport Null поля


14-6226
iNew
2004-02-12 05:30
2004.03.03
Утилита SHUTDOWN.EXE из resource kit.


1-6098
Santra
2004-02-20 19:57
2004.03.03
Как проверить наличие файла?


3-5981
Lisa
2004-02-04 13:55
2004.03.03
в DBGrid не работает мышинный скроллинг