我刚买了一本vc++.net 高级编程,在学习中发现了一个问题,因为我的机器上装的是。NET 2005,在看到第一个程序的时候就发现了问题,请看下面的代码:
#using <mscorlib.dll>

using namespace System;

int main()
{
Console::WriteLine(S"HELLO");
return 0;
}

这个是原来书中要表达的意思,可是不能运,中2002中听说可以,我没有试过,但在2003中要这样才能运行,如下:
#using <mscorlib.dll>

;
using namespace System;

int main()
{
System::Console::WriteLine(S"HELLO");
return 0;
}

加了一个;就可以正常运行了。

但到到了2005上面怎么改都不能运行,并且说fatal error C1190: managed targeted code requires a '/clr' option
请问在2005中怎么做,在2003在又为什么要加;
谢谢!

解决方案:

在“解决方案资源管理器”中右击该项目,单击“属性”,然后选择“配置属性”的“常规”节点中的“公共语言运行库支持”选项。点开“公共语言运行库支持”,下拉选中“公共语言运行库支持,选择(/clr:oldSyntax)”。

 

原因:

2003使用的是.NET FRAMEWORK 1.1,但是2005使用的是2.0,也就是C++/CLI,这用语法不同于MC++(Managed C++),因此无法直接编译。但是MC++仍然被支持,可以在/clr后面加上:oldstyle。就是说cl yourcode.cpp /clr:oldstyle
Deitel的书我也看过,还挺贵的,没想到语法变了,呵呵……:~(
不过FrameWork架构还是可以从该书体会得到的!