C++ 无法在vs2012中编译密码筛选器
我下载了一些关于密码过滤器的代码。最初的项目是在vs2008和vs2010中编译的。我将它更新为vs2012,发现它无法编译。我怎样才能解决这个问题,谢谢 这是错误消息:C++ 无法在vs2012中编译密码筛选器,c++,visual-studio-2010,compiler-errors,visual-studio-2012,passwords,C++,Visual Studio 2010,Compiler Errors,Visual Studio 2012,Passwords,我下载了一些关于密码过滤器的代码。最初的项目是在vs2008和vs2010中编译的。我将它更新为vs2012,发现它无法编译。我怎样才能解决这个问题,谢谢 这是错误消息: TCHAR是Microsoft的宏,用于8位字符或16位字符的wchar\t,以帮助区分Unicode和ASCII字符串。SDK中有两个不同的API集,因此编译器是编译器。Visual Studio 2012似乎默认为wchar\u t而不是char。您可以通过项目的选项禁用它:右键单击项目,然后单击属性。在“常规”部分下,
TCHAR是Microsoft的宏,用于8位字符或16位字符的wchar\t,以帮助区分Unicode和ASCII字符串。SDK中有两个不同的API集,因此编译器是编译器。Visual Studio 2012似乎默认为wchar\u t而不是char。您可以通过项目的选项禁用它:右键单击项目,然后单击属性。在“常规”部分下,应该有一个字符集选项。将其从使用Unicode字符集更改为使用多字节字符。阅读以下页面了解更多详细信息:希望有帮助。TCHAR是Microsoft针对8位字符或16位字符wchar的宏,有助于区分Unicode和ASCII字符串。SDK中有两个不同的API集,因此编译器是编译器。Visual Studio 2012似乎默认为wchar\u t而不是char。您可以通过项目的选项禁用它:右键单击项目,然后单击属性。在“常规”部分下,应该有一个字符集选项。将其从使用Unicode字符集更改为使用多字节字符。请阅读以下页面以了解更多详细信息:希望有帮助。您很可能不希望对当前的困境进行unicode编译。。。项目 在项目资源管理器中右键单击项目,选择属性。。。 在“属性”对话框的最顶部是一个配置选择下拉列表。您可能希望更改所有配置,除非出于某种奇怪的原因,您希望构建非Unicode调试版本,但却是Unicode版本。如果您希望它们都是非Unicode的,并且很可能会选择所有配置。 在左侧窗格的“配置属性”下,选择“常规” 在右侧窗格中的“项目默认值”下,查找字符集 如果当前设置为Unicode字符集,请将其更改为多字节字符集,或者如果不打算使用MBCS功能,则不设置。 保存项目文件,然后重建世界。
注意:API中的一些函数调用有望通过宏定义进行选择。我特别关心的一个问题是pshk_log_write_w,这个名字意味着选择它是因为我希望您是以Unicode编译的。幸运的是,有一个相关的pshk_log_write_函数,它是该函数的一个狭窄版本,当您进行上述更改时,它将自动作为预期目标。如果没有,可能会有一些地方,你需要做一些从宽到窄的转换,但我只能希望没有。这样做很痛苦。您很可能不希望unicode编译用于当前的困境。。。项目 在项目资源管理器中右键单击项目,选择属性。。。 在“属性”对话框的最顶部是一个配置选择下拉列表。您可能希望更改所有配置,除非出于某种奇怪的原因,您希望构建非Unicode调试版本,但却是Unicode版本。如果您希望它们都是非Unicode的,并且很可能会选择所有配置。 在左侧窗格的“配置属性”下,选择“常规” 在右侧窗格中的“项目默认值”下,查找字符集 如果当前设置为Unicode字符集,请将其更改为多字节字符集,或者如果不打算使用MBCS功能,则不设置。 保存项目文件,然后重建世界。
注意:API中的一些函数调用有望通过宏定义进行选择。我特别关心的一个问题是pshk_log_write_w,这个名字意味着选择它是因为我希望您是以Unicode编译的。幸运的是,有一个相关的pshk_log_write_函数,它是该函数的一个狭窄版本,当您进行上述更改时,它将自动作为预期目标。如果没有,可能会有一些地方,你需要做一些从宽到窄的转换,但我只能希望没有。这样做很痛苦。我将字符集更改为unicode字符集,很有效,谢谢。@king LOL。将其更改为unicode是我从未想到的事情。现在我想了想,如果它是unicode的,而您的新项目转换没有设置它,那么同样的问题也会出现。嗯。好吧,至少你找到了项目属性编辑器的正确部分来修改它。很高兴我至少能帮你做到这一点=P。我将字符集更改为unicode字符集,它很有效,谢谢你。@king LOL。将其更改为unicode是我从未想到的事情。现在我想了想,如果它是unicode的,而您的新项目转换没有设置它,那么同样的问题也会出现。嗯。好吧,至少你找到了项目的正确部分 我想改变它。很高兴我至少能帮你走那么远。
Error 1 error C2440: '=' : cannot convert from 'char *' to 'TCHAR *' D:\SVN\branch\nobull-branch\util.cpp 72 1 passwdHk
Error 2 error C2664: 'int sprintf_s(char *,size_t,const char *,...)' : cannot convert parameter 1 from 'TCHAR *' to 'char *' D:\SVN\branch\nobull-branch\util.cpp 89 1 passwdHk
Error 3 error C2664: '_strdup' : cannot convert parameter 1 from 'TCHAR *' to 'const char *' D:\SVN\branch\nobull-branch\util.cpp 91 1 passwdHk
Error 4 error C2664: 'strlen' : cannot convert parameter 1 from 'TCHAR *' to 'const char *' D:\SVN\branch\nobull-branch\util.cpp 188 1 passwdHk
Error 5 error C2664: 'pshk_log_write_w' : cannot convert parameter 2 from 'const char [28]' to 'LPCWSTR' D:\SVN\branch\nobull-branch\util.cpp 202 1 passwdHk
Error 6 error C2664: 'strlen' : cannot convert parameter 1 from 'TCHAR *' to 'const char *' D:\SVN\branch\nobull-branch\util.cpp 208 1 passwdHk
Error 7 error C2664: 'strlen' : cannot convert parameter 1 from 'TCHAR *' to 'const char *' D:\SVN\branch\nobull-branch\util.cpp 211 1 passwdHk
Error 8 error C2664: '_strdup' : cannot convert parameter 1 from 'TCHAR *' to 'const char *' D:\SVN\branch\nobull-branch\util.cpp 224 1 passwdHk
Error 9 error C2664: 'strlen' : cannot convert parameter 1 from 'TCHAR *' to 'const char *' D:\SVN\branch\nobull-branch\util.cpp 229 1 passwdHk
Error 10 error C2446: ':' : no conversion from 'const char *' to 'TCHAR *' D:\SVN\branch\nobull-branch\util.cpp 249 1 passwdHk
Error 11 error C2664: 'int _snprintf_s(char *,size_t,size_t,const char *,...)' : cannot convert parameter 1 from 'TCHAR *' to 'char *' D:\SVN\branch\nobull-branch\util.cpp 249 1 passwdHk
Error 12 error C2664: 'int _snprintf_s(char *,size_t,size_t,const char *,...)' : cannot convert parameter 1 from 'TCHAR *' to 'char *' D:\SVN\branch\nobull-branch\util.cpp 254 1 passwdHk