我遇到了一个问题,当我传递它的MFC资源ID时,MAKEINTRESOURCE宏似乎总是返回一个错误的指针。资源ID全部列在Resource.h中,并且与资源属性中ID的设置相匹配。MAKEINTRESOURCE返回资源ID的错误指针
我是MFC的新手,所以我不完全确定自己理解资源&他们的ID的工作,但在我看来,坏指针会表明我的资源没有存储在正确的位置在记忆中?这是一个旧的项目,我试图添加一些新的功能,并且当我尝试使用较旧的资源做MAKEINTRESOURCE时,我检查了anf(这肯定是工作的,它们在我运行应用程序时显示并且功能正常),我也变得很糟糕指针。
这可能是什么原因造成的?
编辑:该项目使用Unicode字符集为好,如果让如果“坏球”你的意思是“不指向资源在内存中对象的指针,”任何区别
请具体说明“坏指针”的含义。 'MAKEINTRESOURCE'在指针内编码一个整数。这不是一个你可以解除引用的指针;你可以用它做的唯一事情就是把它传递给一个资源函数。 – 2012-03-21 14:25:10
当我在调试和鼠标上运行该程序的返回值时,它会说“ CXX0030Error:无法评估表达式” 这是预期的吗?每当我尝试使用来自MAKEINTRESOURCE的返回值加载资源时,它无法找到资源,我想也许是是原因。 –
Marzipan
2012-03-21 14:34:08
是的,这是预期的,因为它不是一个指向任何东西的指针,也不能被取消引用。 – 2012-03-21 16:23:29