//********AA.DLL 안에있는 함수****************//
procedure SHOW_AAFORM(const DBHandle : HDBIDB); stdcall;
begin
AA:=TAA.Create(Application);
DM.FDataBase.Handle:=DBHandle;
AA.Show;
end;
//******************************************//
//********BB.DLL 안에있는 함수****************//
procedure SHOW_BBFORM(const DBHandle : HDBIDB); stdcall;
begin
BB:=TBB.Create(Application);
DM.FDataBase.Handle:=DBHandle;
BB.Show;
end;
//******************************************//
//**************************************************//
procedure TRGOMAIN.DllLoad(ADLLNAME,AFUNCTION:String);
type
TProc = procedure(DBHandle:HDBIDB);stdcall;
var
H : THandle;
MyProc : TProc;
s:string;
begin
H := LoadLibrary(PChar(GetExePath+ADLLNAME));
if H<=32 then
ShowMessage('DLL을 로드하는데 실패했습니다.')
else begin
@MyProc := GetProcAddress(H,PChar(AFUNCTION));
if (@MyProc = nil) then begin
ShowMessage('DLL에서 함수의 어드레스를 얻는데 실패했습니다.');
exit;
end
else
MYProc(DBGRODB.Handle);
end;
end;
//*******************************************************//
위와같이 만들어진 함수를 이용해서
버튼1을 클릭해서 : DllLoad('AA.DLL','SHOW_AAFORM');
버튼2를 클릭해서 : DllLoad('BB.DLL','SHOW_BBFORM');
위와같이 DLL로 만들어진폼 2개를 띄울려고하는데
둘중 하나라도 폼이 띄워져있으면
Access violation at address 에러가 나옵니다.
DLL로 만들어진 폼은 하나밖에 못띄우는건지..
답변좀 부탁드립니다.