Форум: "Потрепаться";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
ВнизПодключение 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c