2012-09-12 74 views
0

我有一些代碼模板,我編譯,我想了解我的代碼的一部分無法弄清楚它做什麼,雖然我花了整整一天試過至。FindResource()找不到我的資源

有問題的代碼如下:

#define IDR_STUB 1 
hRsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_STUB), "STUB"); 

我在同一目錄與主文件另外兩個文件,第一個被稱爲`something.rc」,是內容爲:

#define IDR_STUB 1 
IDR_STUB STUB DISCARDABLE "stub.exe" 

另一個文件,你可以猜到是stub.exe

我的問題是上面的FindResource調用有什麼問題,它無法找到任何正在嘗試查找的內容,我很難理解該函數如何工作。

所以,如果你能給我一些幫助,我會很高興:)

THX。

+0

什麼'GetLastError函數()'報告後沒有打電話到'FindResource( )'? – hmjd

+0

嗯林不是很確定,但據我記得.rc應該首先編譯爲.res以使其工作,這可以通過rc.exe – Pyjong

+0

完成然後將其鏈接到最終的二進制文件。 – hmjd

回答

1

有同樣的問題。我解決它通過使用字符串資源id作爲在MSDN描述:

如果字符串的第一個字符是一個井號(#),則剩餘的字符代表一個十進制數,指定資源的名稱的整數標識符或鍵入。例如,字符串 「#258」 表示數字標識符258

那麼試試下面的代碼:

hRsrc = FindResource(NULL, "#1", "STUB"); 
+0

這是由宏自動完成MAKEINTRESOURCE – rkosegi

+0

@rkosegi:不,MAKEINTRESOURCE只是一個類型轉換。 –

+0

任何想法哪些情況下需要使用此方法而不是MAKEINTRESOURCE? – sgryzko