Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подключение dll созданной в VS2k3 [D7, WinXP]


Andrewk88 ©   (2006-10-30 11:42:00) 

есть некая graph.dll созданая в VS2k3.

//Graph.h
#ifdef GRAPH_EXPORTS
#define GRAPH_API __declspec(dllexport)
#else
#define GRAPH_API __declspec(dllimport)
#endif

GRAPH_API void Paint(void);
GRAPH_API void SetWnd(HWND hWnd);
GRAPH_API void FreeGr(void);

создаю .pas файл чтобы подключить dll в Delphi7

unit Graph;
interface
uses Windows;
 procedure Paint(); cdecl;
 procedure SetWnd(hWnd:HWND); cdecl;
 procedure FreeGr(); cdecl;
implementation
 procedure Paint(); cdecl; external 'Graph.dll' name 'Paint';
 procedure SetWnd(hWnd:HWND); cdecl; external 'Graph.dll' name 'SetWnd';
 procedure FreeGr(); cdecl; external 'Graph.dll' name 'FreeGr';
begin
end.

//*****************//
При вызове любой ф-ии (кроме Paint) вылетает ошибка:
Точка входа в процедуру SetWnd(FreeGr) не найдена в библиотеке DLL Graph.dll
в чем ошибка?
P.S. dll находиться в папке с программой написанной на Delphi


Andrewk88   (2006-10-30 13:32:00) [1]

extern "c" добавил
все прекрасно работает.
спасибо. вопрос закрыт


Andrewk88   (2006-10-30 13:25:00) [2]

если был бы .def файл.
я без понятия где он должен быть и как его создать


Ketmar   (2006-10-30 13:17:00) [3]

хм. судя по отсутствию extern "c" { ... }-- name mangling может делать всё, что угодно.
кстати. .def-файл бы привёл, а?


icWasya   (2006-10-30 11:57:00) [4]

А проверить, какие имена экспортирует dll?
может быть _FreeGR
или ещё хуже SetWnd(void*)


Elen   (2006-10-30 11:49:00) [5]


> Andrewk88

Откуда такая уверенность что SetWnd есть в dll и имя написано у тебя правильно?. Открой Dll чем нибудь что показывает таблицу функций


Наверх

Титульная страница Поиск, карта сайта Написать письмо