我的项目编译在vs2008没有一个单一的问题,但不是在2010年
My project compiles in vs2008 without a single issue but does not in 2010?
我有一个c++项目,在2008年可以正常编译,但在2010年却不能编译。
在2010年,如果我把它的字符集改为多字节,它将编译,但没有字符串工作正确,可以准确地描述发生了什么,如果我不改变它下面的代码错误和警告显示。
在2008年,它编译和工作都很好,没有一个问题。
我在c++中不是很聪明,所以如果可能的话,一个容易理解的响应尽可能详细,将帮助我非常了解正在发生的事情和可能的修复它。
下面是当它不是多字节时的错误和警告:
12 IntelliSense: argument of type "char *" is incompatible with parameter of type "LPCWSTR"
13 IntelliSense: argument of type "char *" is incompatible with parameter of type "LPCWSTR"
Error 10 error C2664: 'URLDownloadToFileW' : cannot convert parameter 2 from 'char [255]' to 'LPCWSTR'
Error 2 error C2664: 'strcmp' : cannot convert parameter 1 from 'WCHAR [256]' to 'const char *'
Error 3 error C2664: 'SetConsoleTitleW' : cannot convert parameter 1 from 'const char [11]' to 'LPCWSTR'
Error 4 error C2664: 'GetModuleHandleW' : cannot convert parameter 1 from 'const char [9]' to 'LPCWSTR'
Error 5 error C2664: 'GetModuleHandleW' : cannot convert parameter 1 from 'const char [9]' to 'LPCWSTR'
Error 11 error C2664: 'GetModuleHandleW' : cannot convert parameter 1 from 'const char [15]' to 'LPCWSTR'
Error 6 error C2664: 'CreateEventW' : cannot convert parameter 4 from 'const char [20]' to 'LPCWSTR'
Error 9 error C2664: 'CCmdHandler::AddMessageBytes' : cannot convert parameter 1 from 'TCHAR *' to 'char *'
Error 7 error C2440: 'initializing' : cannot convert from 'const char [16]' to 'LPTSTR'
Error 8 error C2440: 'initializing' : cannot convert from 'const char [16]' to 'LPTSTR'
Error 1 error C2440: '<function-style-cast>' : cannot convert from 'WCHAR [256]' to 'std::string'
c++项目文件
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="TheProject"
ProjectGUID="{96791392-AA33-4460-BFEA-D766216ECAA8}"
RootNamespace="TheProject"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;THEPROJECT_EXPORTS;LOGTOCONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-D_SCL_SECURE_NO_WARNINGS"
Optimization="0"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories=""C:Program Files (x86)Microsoft DirectX SDK (June 2010)Include""
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;THEPROJECT_EXPORT;LOGTOCONSOLE"
ExceptionHandling="2"
RuntimeLibrary="2"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="false"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
AdditionalLibraryDirectories="..lib"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Quelldateien"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".CmdHandler.cpp"
>
</File>
<File
RelativePath=".ConsoleCMD.cpp"
>
</File>
<File
RelativePath=".dllmain.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="0"
CompileAsManaged="0"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="0"
CompileAsManaged="0"
/>
</FileConfiguration>
</File>
<File
RelativePath=".EntiyManager.cpp"
>
</File>
<File
RelativePath=".ICommand.cpp"
>
</File>
<File
RelativePath=".MiscManager.cpp"
>
</File>
<File
RelativePath=".PipeProtocol.cpp"
>
</File>
<File
RelativePath=".Pipes.cpp"
>
</File>
<File
RelativePath=".stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Headerdateien"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".CmdHandler.h"
>
</File>
<File
RelativePath=".CommandIDList.h"
>
</File>
<File
RelativePath=".ConsoleCMD.h"
>
</File>
<File
RelativePath=".detours.h"
>
</File>
<File
RelativePath=".EntiyManager.h"
>
</File>
<File
RelativePath=".hide.h"
>
</File>
<File
RelativePath=".ICommand.h"
>
</File>
<File
RelativePath=".IOnFrameClient.h"
>
</File>
<File
RelativePath=".Log.h"
>
</File>
<File
RelativePath=".MiscManager.h"
>
</File>
<File
RelativePath=".PipeProtocol.h"
>
</File>
<File
RelativePath=".Pipes.h"
>
</File>
<File
RelativePath=".stdafx.h"
>
</File>
<File
RelativePath=".targetver.h"
>
</File>
</Filter>
<Filter
Name="Ressourcendateien"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<File
RelativePath=".ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
您的代码似乎不是为UNICODE字符串编写的。所以你应该检查你的项目设置,并在"通用"部分验证你使用的"字符集"。我想你有"使用Unicode字符集",但你需要将其更改为"不设置"。"使用多字节字符集"不一样。
相关文章:
- 将代码从 32 位迁移到 64 位时出现问题 Visual Studio 2010
- 解决谷歌启动2018年第三季度的启动问题
- 代码 c++ VS 2010 中的 LPCWSTR 到字符串转换问题
- 为什么Folloing代码在2010年Visual Studio(X64应用程序)中抛出非法指令例外
- 视觉C 2010年致命错误C1083;没有权限
- 从 Visual Studio 2010 迁移到 2012 时C++11 问题
- Visual Studio 2010 的模板问题
- C++ 年 Eclipse 中的 CPLEX 问题
- 在VS 2010上使用boost::interprocess生成代码问题
- MS Visual Studios链接错误.2010年和2013年
- 在Visual Studio 2010中链接到FFMPEG库的问题
- 与 2010 年相比,解决方案更新到 2012 年.std::function = 空错误
- 2010年,在视觉C++中构建Tesseract
- C++ 2010年:使用 #include < mysql.h>
- 标头和链接器错误的视觉问题(C++ 年新增)
- 与2010年和2015年相比,错误号有所不同
- DoModal于2010年在visual studio中崩溃
- 使用VS2012和DirectX的警告(2010年6月)
- 我的项目编译在vs2008没有一个单一的问题,但不是在2010年
- 致命错误LNK1112:2010 年模块计算机类型"X86"与目标计算机类型"X64"冲突