Главная страница
    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
6-6165
Asail
2003-12-25 16:02
2004.03.03
Как вытащить инфу из домена?


8-6157
Ivolg
2003-11-02 09:12
2004.03.03
Прокрутка


4-6277
ANT0
2003-12-26 09:22
2004.03.03
Копирование файлов


1-6027
h0use
2004-02-16 16:21
2004.03.03
Непонятное поведение Делфи


1-6039
MadGhost
2004-02-19 08:09
2004.03.03
Кто нибудь встречал компонент похожий как в ICQ.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский