VC2012编译一道例子时出错。求达人指点。该怎么处理
VC2012编译一道例子时出错。求达人指点。
原书的例题:使用枚举的事例:
#include "stdafx.h"
using namespace System;
//Define the enumeration at global scope
enum class Suit{Clubs, Diamonds, Hearts, Spades};
int main(array<System::String ^> ^args)
{
Suit suit = Suit::Clubs;
int value = safe_cast <int> (suit);
Console::WriteLine(L"Suit is {0} and the value is {1}",suit,value);
suit = Suit::Diamonds;
value = safe_cast <int> (suit);
Console::WriteLine(L"Suit is {0} and the value is {1}",suit,value);
suit = Suit::Hearts;
value = safe_cast <int> (suit);
Console::WriteLine(L"Suit is {0} and the value is {1}",suit,value);
suit = Suit::Spades;
value = safe_cast <int> (suit);
Console::WriteLine(L"Suit is {0} and the value is {1}",suit,value);
return 0;
}
正常输出是:
Suit is Clubs and the value is 0
Suit is Diamonds and the value is 1
Suit is Hearts and the value is 2
Suit is Spades and the value is 3
但是按ctrl+f5提示错误,错误列表如下:
1>------ 已启动生成: 项目: Ex02_13, 配置: Debug Win32 ------
1> Ex02_13.cpp
1>Ex02_13.cpp(16): error C2665: “System::Console::WriteLine”: 19 个重载中没有一个可以转换所有参数类型
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 可能是“void System::Console::WriteLine(cli::array<Type,dimension> ^,int,int)”
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,System::Object ^,System::Object ^)”
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,...cli::array<Type,dimension> ^)”
1> with
1> [
1> Type=System::Object ^,
1> dimension=1
1> ]
1> 尝试匹配参数列表“(const wchar_t [33], Suit, int)”时
1>Ex02_13.cpp(19): error C2665: “System::Console::WriteLine”: 19 个重载中没有一个可以转换所有参数类型
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 可能是“void System::Console::WriteLine(cli::array<Type,dimension> ^,int,int)”
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,System::Object ^,System::Object ^)”
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,...cli::array<Type,dimension> ^)”
1> with
1> [
1> Type=System::Object ^,
1> dimension=1
1> ]
1> 尝试匹配参数列表“(const wchar_t [33], Suit, int)”时
1>Ex02_13.cpp(22): error C2665: “System::Console::WriteLine”: 19 个重载中没有一个可以转换所有参数类型
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 可能是“void System::Console::WriteLine(cli::array<Type,dimension> ^,int,int)”
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,System::Object ^,System::Object ^)”
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,...cli::array<Type,dimension> ^)”
1> with
1> [
1> Type=System::Object ^,
1> dimension=1
1> ]
1> 尝试匹配参数列表“(const wchar_t [33], Suit, int)”时
1>Ex02_13.cpp(25): error C2665: “System::Console::WriteLine”: 19 个重载中没有一个可以转换所有参数类型
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 可能是“void System::Console::WriteLine(cli::array<Type,dimension> ^,int,int)”
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,System::Object ^,System::Object ^)”
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,...cli::array<Type,dimension> ^)”
1> with
1> [
1> Type=System::Object ^,
1> dimension=1
1> ]
1> 尝试匹配参数列表“(const wchar_t [33], Suit, int)”时
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
求高手指点。
------解决思路----------------------
你这是C++.NET,出门左转.NET版问吧
原书的例题:使用枚举的事例:
#include "stdafx.h"
using namespace System;
//Define the enumeration at global scope
enum class Suit{Clubs, Diamonds, Hearts, Spades};
int main(array<System::String ^> ^args)
{
Suit suit = Suit::Clubs;
int value = safe_cast <int> (suit);
Console::WriteLine(L"Suit is {0} and the value is {1}",suit,value);
suit = Suit::Diamonds;
value = safe_cast <int> (suit);
Console::WriteLine(L"Suit is {0} and the value is {1}",suit,value);
suit = Suit::Hearts;
value = safe_cast <int> (suit);
Console::WriteLine(L"Suit is {0} and the value is {1}",suit,value);
suit = Suit::Spades;
value = safe_cast <int> (suit);
Console::WriteLine(L"Suit is {0} and the value is {1}",suit,value);
return 0;
}
正常输出是:
Suit is Clubs and the value is 0
Suit is Diamonds and the value is 1
Suit is Hearts and the value is 2
Suit is Spades and the value is 3
但是按ctrl+f5提示错误,错误列表如下:
1>------ 已启动生成: 项目: Ex02_13, 配置: Debug Win32 ------
1> Ex02_13.cpp
1>Ex02_13.cpp(16): error C2665: “System::Console::WriteLine”: 19 个重载中没有一个可以转换所有参数类型
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 可能是“void System::Console::WriteLine(cli::array<Type,dimension> ^,int,int)”
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,System::Object ^,System::Object ^)”
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,...cli::array<Type,dimension> ^)”
1> with
1> [
1> Type=System::Object ^,
1> dimension=1
1> ]
1> 尝试匹配参数列表“(const wchar_t [33], Suit, int)”时
1>Ex02_13.cpp(19): error C2665: “System::Console::WriteLine”: 19 个重载中没有一个可以转换所有参数类型
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 可能是“void System::Console::WriteLine(cli::array<Type,dimension> ^,int,int)”
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,System::Object ^,System::Object ^)”
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,...cli::array<Type,dimension> ^)”
1> with
1> [
1> Type=System::Object ^,
1> dimension=1
1> ]
1> 尝试匹配参数列表“(const wchar_t [33], Suit, int)”时
1>Ex02_13.cpp(22): error C2665: “System::Console::WriteLine”: 19 个重载中没有一个可以转换所有参数类型
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 可能是“void System::Console::WriteLine(cli::array<Type,dimension> ^,int,int)”
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,System::Object ^,System::Object ^)”
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,...cli::array<Type,dimension> ^)”
1> with
1> [
1> Type=System::Object ^,
1> dimension=1
1> ]
1> 尝试匹配参数列表“(const wchar_t [33], Suit, int)”时
1>Ex02_13.cpp(25): error C2665: “System::Console::WriteLine”: 19 个重载中没有一个可以转换所有参数类型
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 可能是“void System::Console::WriteLine(cli::array<Type,dimension> ^,int,int)”
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,System::Object ^,System::Object ^)”
1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.5\mscorlib.dll: 或 “void System::Console::WriteLine(System::String ^,...cli::array<Type,dimension> ^)”
1> with
1> [
1> Type=System::Object ^,
1> dimension=1
1> ]
1> 尝试匹配参数列表“(const wchar_t [33], Suit, int)”时
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
求高手指点。
------解决思路----------------------
你这是C++.NET,出门左转.NET版问吧