본문 바로가기
kxLibrary

KFC1.0 Class Update For Thread Safe ResourceHandle

by 두루물 2010. 12. 18.


명시적으로 LINK 한 DLL 내에서 KFCSetResourceInstance() 가 잘 듣지 않는 문제.

DLL내에서 KFCSetResourceInstance() 하는 경우, 잘 듣지 않는 현상이 발생 하는데,이는
명시적으로 dll을 link 하였을 경우에 DLLMain() 재 진입이 수시로 이루어지게 되어,
전역변수인  _KFCModule.m_hResInst 값이 변경이 되어 발생되는 문제임.

Modified New ,

void KFCApp::WinInit(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
 m_hInstance=hInstance;m_hPrevInstance=hPrevInstance;
 m_lpCmdLine=lpCmdLine;m_nCmdShow=nCmdShow;

 _KFCModule.m_hInst = m_hInstance;
 _KFCModule.m_hResInst = m_hInstance;
 InitApplication();
 m_bInit = InitInstance();//다이얼로그일때는 FALSE를 리턴해야한다.In Dialog mode,return FALSE.
}

void KFCApp::DllInit(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
 m_dwReason = dwReason;
 m_lpReserved=lpReserved;
 //For thread safe,don't deal with DLL_THREAD_ATTACH
 if(dwReason == DLL_PROCESS_ATTACH){
  m_hInstance = hInstance;
  _KFCModule.m_hInst = m_hInstance;
  _KFCModule.m_hResInst = m_hInstance;
 }
 InitApplication();
 m_bInit = InitInstance();
}

Please Download new KFCApp Class and Replace to current Files.