修改资源导致 error RC2135 链接错误

    技术2022-05-11  17

    修改资源导致 error RC2135 链接错误
     分类:error RC2135部分文章来自于网络,如有侵权请联系站长,以便及时卸下来 

     

    相信各位朋友一定开发过可以显示对话框的常规MFC DLL,例如显示一个登陆对话框并进行口令校验。我在VC6下面做时,一点问题都没有。可是转到 VC.NET 中文版之后,麻烦却来了。下面的操作,大家可以试试(一定要用中文版,英文版我不知道是否也会出 error RC2135 错误)1、用 VC.NET 新建一个常规MFC DLL项目;2、在资源编辑器中,插入一个对话框资源;3、编译此项目,系统会提示:“DlgDLL.rc (158): error RC2135 : file not found: 936”问题出在哪里呢?我用任务列表窗口查看,有以下信息:“e:/Study/DlgDLL/DlgDLL.rc(158): error RC2135 : file not found: 936”,原来是刚加入的对话框使编译失败。这是怎么回事呢?经过和VC6生成的相似工程的比较,我终于找到了解决办法,步骤很简单:1、在VC.net的“解决方案资源管理器”窗口中,用鼠标右击工程的rc文件,本例中是DlgDLL.rc,在弹出菜单中选择“打开方式”,然后在出现的对话框中选择“源代码(文本)编辑器”,随后单击“打开”按钮;2、定位到文本形式的rc文件的最后几行,你回看到类似于下面的代码:#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)语言 4、2#pragma code_page(936)#include "res/DlgDLL.rc2" // 非 Microsoft Visual C++ 编辑资源#include "afxres.rc" // 标准组件#endif3、将这段代码中的“语言 4、2”改为“LANGUAGE 4,2”;4、保存并重新编译,一切OK!不知在英文版下是否也有同样的bug,微软也真不够意思! :-)

    PS:我还碰到过一个比较神奇的问题,一个好好的VC project能正常编译通过,但只要对资源做一点点改动比如版本号等,之后再次编译就会产生 error RC2135 : file not found: 936错误,也不知道VC在哪动了手脚,没办法最后只得手工在rc资源文件里修改,这样就可避免 error RC2135 错误。


    最新回复(0)