Форум: "Основная";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизПодключение dll созданной в VS2k3 Найти похожие ветки
← →
Andrewk88 (2006-10-30 11:42) [0]есть некая 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
← →
Elen © (2006-10-30 11:49) [1]
> Andrewk88
Откуда такая уверенность что SetWnd есть в dll и имя написано у тебя правильно?. Открой Dll чем нибудь что показывает таблицу функций
← →
icWasya © (2006-10-30 11:57) [2]А проверить, какие имена экспортирует dll?
может быть _FreeGR
или ещё хуже SetWnd(void*)
← →
Ketmar © (2006-10-30 13:17) [3]хм. судя по отсутствию
extern "c" { ... }
-- name mangling может делать всё, что угодно.
кстати. .def-файл бы привёл, а?
← →
Andrewk88 (2006-10-30 13:25) [4]если был бы .def файл.
я без понятия где он должен быть и как его создать
← →
Andrewk88 (2006-10-30 13:32) [5]extern "c" добавил
все прекрасно работает.
спасибо. вопрос закрыт
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c