我剛買了一本vc++.net 高級編程,在學習中發(fā)現(xiàn)了一個問題,因為我的機器上裝的是。NET 2005,在看到第一個程序的時候就發(fā)現(xiàn)了問題,請看下面的代碼:
#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在又為什么要加;
謝謝!

解決方案:

在“解決方案資源管理器”中右擊該項目,單擊“屬性”,然后選擇“配置屬性”的“常規(guī)”節(jié)點中的“公共語言運行庫支持”選項。點開“公共語言運行庫支持”,下拉選中“公共語言運行庫支持,選擇(/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架構(gòu)還是可以從該書體會得到的!