从VS6迁移到VS10:atlmfc中的'AfxCrtErrorCheck'

时间:2014-07-18 11:15:56

标签: visual-studio-2010 visual-c++

我正在尝试将最初用Visual Studio 6编写的代码编译到VS 10。 我在MSDN的一篇文章中读到了' atlmfc'已从VS10中删除。 VS10中atlmfc的替代方案是什么? 错误指向atlchecked.h文件。

错误C2664:' AfxCrtErrorCheck' :无法从' char *'转换参数1到#errno_t' 1 GT;没有可以进行此转换的上下文 。 。 程序文件(x86)\ microsoft visual studio 10.0 \ vc \ atlmfc \ include \ atlcomcli.h(2235):错误C2065:' cVal' :未声明的标识符

这些错误存在于所有头文件中,如atlcomcli.h,oaidl.h。 第1部分)我想在VS10中未识别#ifdef中包含的内容,我可能需要提供正确的路径或包含相关的头文件。令人惊讶的是到目前为止网上没有解决方案。如果我与其他解决方案比较,它似乎不是一个问题,因为路径是正确的。我正在从visual studio 10版本中挑选所有atlmfc文件。 第2部分,因为Scott说代码更改是必需的,但这里指出的问题是

  

#ifdef _AFX       #define ATLMFC_CRT_ERRORCHECK(expr)AFX_CRT_ERRORCHECK(expr)       #其他       #define ATLMFC_CRT_ERRORCHECK(expr)ATL_CRT_ERRORCHECK(expr)       #ENDIF

网上的一篇文章说 - http://msdn.microsoft.com/en-us/library/bb531344.aspx

"删除了MFC头文件中的#ifdefs。"那是什么意思 ?如果删除Visual Studio 10中的任何替代方法?

我也可以直接将VS6代码转换为VS10,或者我应该首先将其转换为VS8然后将其迁移到VS10?请帮助。

2 个答案:

答案 0 :(得分:0)

' atlmfc'是VC目录中的文件夹名称。在VC的版本中,它没有被删除,但是它已被删除了,并且在#34; express"版本,这是免费的。您必须拥有付费版本的VC才能使用MFC和ATL库。

我认为VS10会打开并转换你的VS6项目,虽然结果仍然需要你进行代码更改。

答案 1 :(得分:0)

嗯,从visual studio 6到VS10的直接转换是不可能的。为什么微软允许这样做? :) 我们必须通过VS5然后VS10。 在很多代码更改的情况下,转换也会非常困难。 http://www.devx.com/cplus/10MinuteSolution/28908