C++:FMC 错误

1、generated debug assertion -- File: docsingl.cpp Line: 215 

MFC程序vs2008编译通过,运行时出错,无法打开,提示f:\dd\xxxx的docsingl.cpp中的210行,找到以下代码:
void CSingleDocTemplate::SetDefaultTitle(CDocument* pDocument)
{
  CString strDocName;
  if (!GetDocString(strDocName, CDocTemplate::docName) ||
    strDocName.IsEmpty())
  {
    // use generic 'untitled'
    ENSURE(strDocName.LoadString(AFX_IDS_UNTITLED));
  }
  pDocument->SetTitle(strDocName);
}

红色行就是出错地方,原因是资源文件引起,一般是从英文或其它语言改成简体中文而造成,把语言相关改为以下几行


#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE 4, 2
#pragma code_page(936)
#endif //_WIN32
View Code
MFC程序vs2008编译通过,运行时出错,无法打开,提示f:\dd\xxxx的docsingl.cpp中的210行,找到以下代码:
void CSingleDocTemplate::SetDefaultTitle(CDocument* pDocument)
{
  CString strDocName;
  if (!GetDocString(strDocName, CDocTemplate::docName) ||
    strDocName.IsEmpty())
  {
    // use generic 'untitled'
    ENSURE(strDocName.LoadString(AFX_IDS_UNTITLED));
  }
  pDocument->SetTitle(strDocName);
}

红色行就是出错地方,原因是资源文件引起,一般是从英文或其它语言改成简体中文而造成,把语言相关改为以下几行


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

 其他错误参考:http://wuyiwangyi.blog.163.com/blog/static/32149495201212182427495/

2、SDL 库 无法解析的外部符号 __imp__fprintf

  VS2015 在链接器-》命令行 里加入legacy_stdio_definitions.lib 

3、VS2015下解决:error LNK2019: 无法解析的外部符号 __iob_func

解决方法一:http://m.blog.csdn.net/article/details?id=50528908

解决方法二:直接在VS2015中加入:

/*
 * 当lib为vs2010编译时,vs2015下静态链接libjpeg-turbo会链接出错:找不到__iob_func,
 * 增加__iob_func到__acrt_iob_func的转换函数解决此问题,
 * 当lib用vs2015编译时,不需要此补丁文件
 */
#if _MSC_VER>=1900
//#include "stdio.h" 
//_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned); 
#ifdef __cplusplus 
extern "C" 
#endif 
FILE* __cdecl __iob_func(unsigned i) { 
    return __acrt_iob_func(i); 
}
#endif /* _MSC_VER>=1900 */
View Code

 

posted @ 2016-03-21 11:55  慧由心生  阅读(629)  评论(0编辑  收藏  举报