2011-10-17 80 views
0

我在我的C++/CLI項目中有resources.resx文件,並且想創建一個構建來自動構建一個訪問器類來幫助在需要時訪問資源。我搜索了很多,但還沒有找到一個體面的解決方案(使用VS2010)。試圖使構建規則創建accessor類到resx文件

我可以創建這個訪問器類:

RESGEN/STR:C++ resources.resx

這將創建一個resources.h文件(我想)和resources.resources文件(這是我可以刪除)。但是我希望在更改resources.resx文件時運行該命令,這使我很頭疼,因爲該文件已經有一個構建目標「Managed resource compiler」,並且在該文件上運行resgen時,它包括7個其他資源文件並且沒有/ str開關。

到目前爲止唯一的自動解決方案是製作預構建事件命令,但這意味着每次構建時都會重新編譯整個項目。

有什麼建議嗎?

回答

0

我解決了這個問題。在該項目的預構建事件我插入這樣的:

resgen /str:c++,myApp,resources,resources.h.new resources.resx myApp.resources.resources 
del myApp.resources.resources 
fc /b resources.h resources.h.new > NUL: 
if NOT "%ERRORLEVEL%"=="0" (type resources.h.new > resources.h) 
del resources.h.new 

基本上,我創建了一個新的resources.h並將其與現有的文件進行比較。如果有差異,我使用type來複制文件以更新時間戳。這使得構建引擎只在需要時才更新resources.h。不漂亮,但它完成了工作。