|
정말 아주 초간단 dll 로 만든건데 에러만 나고 있습니다..
제가 초보라 좀 봐주시면 정말 감사 드리겠습니다.
c++로 만든 dll을 델파이에서 불러 올려고 했습니다...
근데 메모리 에러만 나옵니다.
c++ builder
Unit1.c
==================================================
#include <windows.h>
#include "Unit1.h"
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
int test2(int Param)
{
return 1;
}
int test(int Param)
{
return 1;
}
==================================================
Unit1.h
==================================================
extern __declspec(dllexport) int test(int Param);
==================================================
델파이로 불러올때
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
type
Ttest = function (param : integer): integer; stdcall;
var
hLib : THandle;
test : Ttest;
begin
hLib := LoadLibrary(PChar('project1.dll'));
if (hLib < 32) then begin
MessageBox(Self.Handle, '라이브러리 파일을 읽을 수 없습니다!', 'OK', mb_IconInformation);
Exit;
end;
// showmessage('요기까지는 성공');
test := GetProcAddress(hLib, 'test'); <=== 여기서 에러가 나는듯...
test(2);
FreeLibrary(hLib);
end;
end.
|