MFC dll 中调用资源32

    技术2026-08-03  2

    1.mfc的dll时引入mfc库的dll在调用资源之前必须先初始化程序 if(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)) { return error; } 正常的mfc中会隐式调用此程序,而在dll中必须显式调用。 当然这还不够还需要调用一个宏 AFX_MANAGE_STATE(AfxGetStaticModuleState()); 此宏的用处是切换当前模块的句柄。因为在默认的情况下,其应用程序的句柄是调用dll的应用程序的句柄, 当发现在应用程序中无此资源时,将会返回无此资源。 获取当前mfc dll的路径,为防止获取到的是调用其得应用程序的路径,需如下: WCHAR strDllPath[MAX_PATH] = L"";

    ::GetModuleFileName(theApp.m_hInstance, strDllPath, MAX_PATH);

    2.win32的dll时 char filename[MAXPATHLEN]; GetModuleFileNameA(GetModuleHandleA("module"), filename, MAXPATHLEN); 可以获取当前动态库所在路径

    最新回复(0)