Главная страница
    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.008 c
1-6148
siriusP
2004-02-19 14:13
2004.03.03
Как изменить цвет, толщину линий StringGrida


3-5966
_san_
2004-02-05 12:16
2004.03.03
SQL Запрос


14-6191
ИМХО
2004-01-27 02:57
2004.03.03
Новый вирь?


1-6092
girich
2004-02-19 14:20
2004.03.03
элементарное в TService


14-6244
VID
2004-02-09 23:27
2004.03.03
Два коннекта к интернету





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