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

  • 相关阅读:
    在 Borland C++ 及 Visual C++ 环境中使用 STLport (作者:孟岩)
    设置JavaFX-CSS改变TreeView节点图标
    Using MS DataGrid control with ADO
    两个加载fxml文件的方法
    JavaFX中ObservableValue类型
    在 Eclipse 下利用 gradle 构建系统
    JavaFX初探
    深度剖析如何保证缓存与数据库的一致性
    ACID的实现原理
    一颗高度为3的B+树能存多少行数据?
  • 原文地址:https://www.cnblogs.com/junyuz/p/3105662.html
Copyright © 2011-2022 走看看