2012-09-12 75 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