![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
![]()
здраствуйте работаю с 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 выдается сообщение = Функция не доступна
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
А как экспортируете функцию? Имя точно такое? Проверьте в каком-нибудь просмотровщике PE секцию экспорта
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.03.2009
Сообщений: 29
|
![]()
при экспорте функции Code_Dec имя экспортируемой функции декорируется в Code_Dec@@@@, или во что то типа того.
Чтобы этого избежать можно объявить функцию как extern "C" или явно прописать в def файле имена экспортируемых функций. |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
![]() Цитата:
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 03.03.2009
Сообщений: 29
|
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
![]()
Не знаю но на ютот код компилятор дает ошибку подскажите что не так я делаю.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
а
Код:
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
![]()
разбираюсь но пока не получается.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
![]() |
![]() |
![]() |
#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 |