TMenuItem *ClickedItem = dynamic_cast<TMenuItem*>(Sender);
if(ClickedItem)
{
int currentDll = ClickedItem->Tag;
HINSTANCE hdll;
wchar_t* dllAdrTag = (dllAdrArray[0] + dllAdrArray[currentDll]).c_str();
hdll = LoadLibrary(dllAdrTag);
typedef __declspec(dllimport) TForm* (*GETFRM)(void);
GETFRM getform = (GETFRM)GetProcAddress(hdll,"getFrm");
// TForm* usefrm = getform();
// usefrm->Show();
}
이러한 코드를 작성 중인데요... 각 DLL dllAdrArray[0]에는 DLL의 Defaultpath와 dllAdrArray[currentDll]에는 DLL의 이름이 들어갑니다.
컴파일로 확인해봤는데, 값을 제대로 들어가더라구요!
그리고 포럼 위에 올라와있는 DLL예제대로 추가를 하던 도중 메모리 오류가 뜨네요. 각 변수들을 이벤트가 발생할때마다 선언해줘서 문제가 없을 줄 알았는데 왜 메모리 오류가 뜨는걸까요...? 도와주세요!
뜨는 메세지도 아래 첨부합니다!
Project ABC.exe raised exception class $C0000005 with message 'access violation at 0x00000000: read of address 0x00000000'.
|