2011-07-11 40 views
1

我有一個mfc資源只有DLL的字符串和菜單,但我想只有在主應用程序(MFC EXE)圖標和位圖,我不想有相同的位圖/圖標在n資源中只有dll的,只在主應用程序中。中性資源的DLL

這可能嗎?如果是,我們如何才能做到這一點? (我嘗試使用的圖標和位圖中性語言,但是當我做的LoadImage/loadicon失敗

注:我使用AfxSetResourceHandle(DLL)來設置我的資源

感謝

回答

1

MFC有一個相當複雜的系統用於搜索除了聲明的資源DLL之外的各種額外DLL的資源(請參閱dllinit.cpp中的AfxFindResourceHandle)。我建議把你的語言中立資源放在一個單獨的DLL中,並把它當作一個擴展DLL來對待。

馬丁

+0

如果你可以通過一些細節來實現這一點,它可能會比我的答案更好。 –

+0

關於MFC擴展dll的文檔在這裏: http://msdn.microsoft.com/en-us/library/h5f7ck28(VS.80).aspx 和應用程序嚮導將生成一個空白的播放,您可以爲其添加資源並使用:: AfxLoadLibrary加載。 Martyn –

+0

我認爲這是我閱讀所有文檔後的正確答案,但不是最簡單的一個。 – Nuno

1

每次需要加載資源時,您都可以繼續調用AfxSetResourceHandle,併爲其提供您希望查找資源的DLL的句柄。或者,您可以繞過MFC獲取一組資源,或者使用例如::LoadImage,這需要一個實例作爲參數處理。

+0

沒錯這個工作,但不是一個完美的解決方案......我不得不放棄,因爲擴展DLL案件的正確答案馬丁,但我不會使用這項建議,我會用你的:)(不太優雅的解決方案) – Nuno