|
수고하십니다.
델파이에서 DLL을 만들고 폼을 넣었습니다.
여러개의 폼을 넣었는데 개별적으로 동작하는 것에는 무리가 없습니다.
그런데 그중에 한 폼은 띄워둔채로 다른 작업을 하면 않되어 Modal 창으로 띄웁니다.
그러니까 DLL에 여러 Form 들이 있고 그 것들은 종속을 가지고 있는것이죠.
근데 델파이 프로그램에서는 DLL 내부의 ShowModal이 잘되지만,
그 DLL을 빌더로 옮겨서 Test해보면 ShowModal에서 메모리 억세스 에러가 납니다.
DLL 로 불려진 DLL 메인폼에서 DLL 내부의 다른 폼을 생성하여
procedure TForm2.Button1Click(Sender: TObject);
var
Form3: TForm3;
begin
Form3 := TForm3.Create(Application);// (nil) 둘다 않됨.
Form3.ShowModal;// <-- 에러 발생. 근데 Form3.Show;는 됨....
Memo1.Lines.Text := Form3.Memo1.Lines.Text;
end;
위와 같이 호출을 하였습니다.
근데 델파이에서는 DLL 상에서 모달폼이 생성이 잘되는데,
빌더에서는 억세스 에러가 납니다.
HINSTANCE DllInstance;
DllInstance = LoadLibrary("MDIChild.dll");
Open = (void(__stdcall *)(TApplication *, TScreen *))GetProcAddress(DllInstance, "Open");
Open(Application, Screen);
물론 빌더에서 모달폼을 직접 억세스 하는 명령은 없습니다.
아시는 분 부탁드리겠습니다.
감사합니다.
|