I have a C++ project that will compile just fine in 2008 and in 2010 it just won't compile.
In 2010 if I change it the character set to multibyte it will compile but no strings work properly can exactly describe what happens to it, if I don't change it the below code errors and warns show up.
In 2008 it compiles and works just fine without a single issue.
I am not very bright in C++ so if possible a easy to understand response as detailed as possible would help me very much to understand what is going on and possible fix it.
Here are the errors and warns when it is not in multibyte:
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++ project file:
<?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>
Your code seems not be written to work with UNICODE strings. So you should examine your project settings and verify in the "General" part which "Character Set" you use. I suppose you have "Use Unicode Character Set", but you need to change it to "Not Set". "Use Multi-Byte Character Set" is not the same.
精彩评论