|
DLL 파라미터로 TApplication 클래스를 넘기시네요~
아마도 빌더 5와 6의 TApplication 클래스 형식이 달라 발생 할 수 있습니다.
혹은 DLL 함수 호출 방식이 다르게 선언되어 있어 발생할 수 있습니다.
확인 방법은 DLL의 MyMsgBox에 디버깅을 걸어 놓으시고 파라미터가 정상적으로 왔는지 확인 해 보는 것이 가장 좋을 듯 합니다.
이상입니다.
궁금이 님이 쓰신 글 :
: 안녕하세요 궁금한 내용이 있어서 몇자 적습니다.
: 빌더6에서 Form을 포함한 DLL을 만들었습니다.
: 이 DLL을 빌더5에서 Open해서 쓰려고하는데요
: 소스는 아래와 같습니다.
:
: int MyMsg(AnsiString Title, AnsiString Msg)
: {
: HINSTANCE DllInstance;
: DllInstance = LoadLibrary("Project2.dll");
: if(DllInstance == NULL){
: ShowMessage("NULL");
: return -1;
: }
: MyMsgBox = (int(__stdcall *)(TApplication *, AnsiString, AnsiString))GetProcAddress(DllInstance,
: "MyMsgBox");
: int val = MyMsgBox (Application, Title, Msg); //여기서 Error발생합니다.
: FreeLibrary(DllInstance);
: return val;
: }
:
:
: int val = MyMsgBox (Application,Title,Msg); 여기서 Access Violation Error가 나는데요...뭐가 문제일까요...
: 참고로 빌더6에서는 잘됩니다.
|