2009-10-29 96 views
2

MFC無法啓動我的對話框,因爲它無法找到資源標識符。對話框位於單獨的.lib文件中(因此它有一個單獨的.rc文件,我假設它與我的.exe文件中的文件存在衝突)。我應該如何處理這種情況?靜態庫文件中的資源 - MFC

+0

你能提供更多關於「未能啓動」的細節嗎?什麼是特定症狀? – 2009-10-29 07:23:10

+0

我會打電話給DoModal,什麼都不會發生。進入DoModal函數顯示資源無法加載。 – Smashery 2009-10-29 07:40:20

回答

4

在爲.exe文件rc文件,添加一行:

#include "YourLibResourceFile.rc" 

然後,在.exe文件的項目設置,添加一個額外的include目錄到YourLibResourceFile.rc,在資源/其他包含目錄。

1

確保您的所有資源ID都是唯一的。

+0

這個要求是由組成的。例如,您可以擁有與對話框資源具有相同ID的位圖資源。即使在相同的對話框中,您也可以在具有相同ID的對話框中擁有多個子控件(對於STATIC控件通用)。儘管遵循您的建議是安全的,但它不必要地限制了您可以在項目中使用的資源總數。 – IInspectable 2015-09-11 13:26:19

+0

我想這個答案在當時對我來說很有意義,但這是6年前的事。我不明白爲什麼這會影響OP的問題。試圖刪除這個答案,但它有一個upvote,這表明它幫助了某人..... – demoncodemonkey 2015-09-11 13:49:01

2

不能將資源(.rc文件內容)存儲在靜態庫中。由於您只能有一個「main」.rc文件,所以其他所有.rc文件都必須使用#include語句包含在該語句中,例如Smashery(編輯:哦!Smashery,您是OP!)所解釋的。

+0

是的,我意外地發現了它自己= P謝謝你的回答! +1 – Smashery 2009-11-05 01:01:19