Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.006 c
14-6195
Домарощинер
2004-02-11 19:52
2004.03.03
Предложите красивый(пошустрее и поменьше) алгоритм


1-6116
Tahion2
2004-02-18 23:55
2004.03.03
Почему я не могу настроить вид TDBChart?


1-6034
TSLP
2004-02-18 16:50
2004.03.03
Архивация ARJ в программе


3-5990
Zx77
2004-02-05 08:15
2004.03.03
Базы данных


4-6271
Rimd
2003-12-25 16:00
2004.03.03
DrawFrameControl и StringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский