zoukankan      html  css  js  c++  java
  • docsingl.cpp line210文件中的ENSURE(strDocName.LoadString(AFX_IDS_UNTITLED))错误

    vc6.0的程序,迁移到了vs2008,编译没有问题,但是在debug模式下,运行会报错,release模式下没问题。然后就问万能的谷哥和度娘,查找了很多文章,不过大部分都是互相抄来抄去,我结合两篇文章的指导,排除了这个问题,贴出来备查。

    这个问题是资源引起的问题,据说是由于建立工程时选择了其他语言,后来又修改成中文,所以会有这个问题。我的工程里面查看了一下,有中文,英文,还有莫名奇妙的意大利文。我新建了一个中文的工程,然后对照两者的不同,进行修改。

    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
    #ifdef _WIN32
    LANGUAGE 4, 2
    #pragma code_page(936)
    #endif //_WIN32

    查找AFX_RESOURCE_DLL,大概会发现4-5处内容,然后注意红色字的部分,其他的地方格式不太一样,但是修改的内容是一样的

    LANGUAGE 4, 2也可以写成LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

    如果用宏,看起来会比较直观,不过vs2008里面,默认用的是数字。

    这样修改完以后,发现问题依旧,继续搜索

    #include "res\XXX.rc2"  // 非 Microsoft Visual C++ 编辑的资源 

    是这里出问题了,由于包含的顺序问题,导致语言的问题,具体的我也说不清,详情可查看参考文章

    #include "res\XXX.rc2"  // 非 Microsoft Visual C++ 编辑的资源
    
    #include "afxres.rc"         // 标准组件
    
    #include "afxprint.rc"       // 打印/打印预览资源

    改成

    #include "afxres.rc"         // 标准组件
    
    #include "afxprint.rc"       // 打印/打印预览资源
    
    #include "res\XXX.rc2"  // 非 Microsoft Visual C++ 编辑的资源

    就可以了,其实就是调整了一下顺序,到此,问题解决

    参考文章:http://www.wuroom.com/post/116/

    http://www.codelast.com/?p=1888

  • 相关阅读:
    C# DataTable的用法详解
    Matlab绘图方法汇总
    java中Comparator的用法
    Java获取随机数
    jQuery动画高级用法——详解animation中的.queue()函数
    Oracle序列号详解
    jQuery验证框架教程
    二十四、按后退键退出Android程序
    同步synchronized用法
    jQuery 复选框全选反选
  • 原文地址:https://www.cnblogs.com/junyuz/p/3105662.html
Copyright © 2011-2022 走看看