|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.03.2010, 20:54 | #1 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
Работа с динамическим подключением DLL
здраствуйте работаю с DLL и ее динамическом подключении к приложению. У меня есть Builder 2006 и следующий код;
Так описана функция в библиотеке DLL char * Code_Dec (char *s, char Key) { for (int i = 0; ; i++) { if (s[i] == '0') break; s[i] = s[i] ^ Key; } retyrn s; } Так я ее в приложении подключаю HINSTANCE hDLL; typedef char (_import * FType (char*)); FType * MyFunc; hDLL = LoadLibrary ("Project1.dll"); if (hDLL !=0) MyFunc = (FType *) GetProcAddress(hDLL,"Code_Dec"); else ShowMessage ("Не удача в загрузки"); if (MyFunc) Label1->Caption = MyFunc ("Привет"); else ShowMessage ("Функция не доступна"); После компиляции и выполнение файла .exe выдается сообщение = Функция не доступна
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
01.03.2010, 20:58 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
А как экспортируете функцию? Имя точно такое? Проверьте в каком-нибудь просмотровщике PE секцию экспорта
|
01.03.2010, 23:47 | #3 |
Пользователь
Регистрация: 03.03.2009
Сообщений: 29
|
при экспорте функции Code_Dec имя экспортируемой функции декорируется в Code_Dec@@@@, или во что то типа того.
Чтобы этого избежать можно объявить функцию как extern "C" или явно прописать в def файле имена экспортируемых функций. |
02.03.2010, 21:01 | #4 | |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
цитата
Цитата:
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
|
02.03.2010, 23:15 | #5 |
Пользователь
Регистрация: 03.03.2009
Сообщений: 29
|
|
05.03.2010, 20:37 | #6 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
Не знаю но на ютот код компилятор дает ошибку подскажите что не так я делаю.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
05.03.2010, 20:48 | #7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
а
Код:
|
07.03.2010, 18:58 | #8 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
разбираюсь но пока не получается.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
08.03.2010, 09:40 | #9 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
Assemblerru нужно использовать соглашение stdcall:
Код:
Последний раз редактировалось profi; 08.03.2010 в 09:45. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с подключением dll библиотеки | Tan4ik | Помощь студентам | 7 | 01.03.2010 21:02 |
Работа с динамическим таймером | S@fer | Общие вопросы Delphi | 1 | 06.05.2009 09:00 |
Работа с подключением к интернету | delphin100 | Работа с сетью в Delphi | 4 | 05.02.2009 08:14 |
Работа с динамическим массивом | sand | Общие вопросы C/C++ | 3 | 22.08.2008 12:48 |
Работа с динамическим массивом и его елементами | Padovan | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 21.05.2008 20:55 |