VS 2010 C ++ - 转换错误

时间:2012-03-27 11:53:32

标签: c++ visual-studio-2010 compiler-errors implicit-conversion

我用C ++编写了一个应用程序,并从互联网上下载了一些示例代码(如thisthis), 但是当我尝试编译代码时,我得到编译错误,如:

  

错误C2664:'CertNameToStrW':无法将参数4从'CHAR [1000]'转换为'LPWSTR'

     

错误C2664:'send':无法将参数2从'BYTE [200]'转换为'const char *'

等等。

当然,我可以通过this问题中建议的显式转换来解决它。 但是我想问一下这种行为是否合理?我假设微软人员在将代码上传到MSDN之前编译代码。我错过了什么?也许我必须安装一些东西?有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

这是由错误的字符集引起的,请参见此处:

http://www.ucancode.net/faq/Visual_c_character_sets-Unicode-MBCS.htm

答案 1 :(得分:0)

您需要从项目设置Unicode关闭Project Properties -> General -> Project Defaults -> Character Set或使用A后缀{win} api函数,而不是CertNameToStrA而不是CertNameToStr