
16.11.2007, 11:34
|
 |
Активный
|
|
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
|
|
Цитата:
Сообщение от Maxigeon
после выгрузки dll (freelibrary) выдает сообщение об ошибке:
что не так?
{текст программы использующей dll}
program use_dll;
{$APPTYPE CONSOLE}
uses
Windows,
dialogs;
var
hModule: THandle;
pGetSum: function(const n1, n2: integer): integer;
n: integer;
s:string;
begin
hModule := LoadLibrary('dll.dll');
assert(hModule <> 0, 'Can''t load DLL!');
pGetSum := GetProcAddress(hModule, 'getsum');
assert(@pGetSum <> nil, 'Can''t find the getSum function!');
n := pGetSum(10, 20);
str(n,s);
showmessage(s);
FreeLibrary(hModule);
end.
{Текст самой dll}
library dll;
uses
Sharemem,
SysUtils,
Classes;
function getsum(const n1, n2: integer): integer;
begin
result:=n1+n2;
end;
exports getsum;
begin
end.
|
Ну во-первых ShareMem тут не к чему, а во вторых попробуй явно указать тип передачи параметрой stdcallback, например
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
|