我用C ++编写了一个应用程序,并从互联网上下载了一些示例代码(如this和this), 但是当我尝试编译代码时,我得到编译错误,如:
错误C2664:'CertNameToStrW':无法将参数4从'CHAR [1000]'转换为'LPWSTR'
错误C2664:'send':无法将参数2从'BYTE [200]'转换为'const char *'
等等。
当然,我可以通过this问题中建议的显式转换来解决它。 但是我想问一下这种行为是否合理?我假设微软人员在将代码上传到MSDN之前编译代码。我错过了什么?也许我必须安装一些东西?有人可以帮忙吗?
答案 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
。