我剛買(mǎi)了一本vc++.net 高級(jí)編程,在學(xué)習(xí)中發(fā)現(xiàn)了一個(gè)問(wèn)題,因?yàn)槲业臋C(jī)器上裝的是。NET 2005,在看到第一個(gè)程序的時(shí)候就發(fā)現(xiàn)了問(wèn)題,請(qǐng)看下面的代碼:
#using <mscorlib.dll>
using namespace System;
int main()
{
Console::WriteLine(S"HELLO");
return 0;
}
這個(gè)是原來(lái)書(shū)中要表達(dá)的意思,可是不能運(yùn),中2002中聽(tīng)說(shuō)可以,我沒(méi)有試過(guò),但在2003中要這樣才能運(yùn)行,如下:
#using <mscorlib.dll>
;
using namespace System;
int main()
{
System::Console::WriteLine(S"HELLO");
return 0;
}
加了一個(gè);就可以正常運(yùn)行了。
但到到了2005上面怎么改都不能運(yùn)行,并且說(shuō)fatal error C1190: managed targeted code requires a '/clr' option
請(qǐng)問(wèn)在2005中怎么做,在2003在又為什么要加;
謝謝!
解決方案:
在“解決方案資源管理器”中右擊該項(xiàng)目,單擊“屬性”,然后選擇“配置屬性”的“常規(guī)”節(jié)點(diǎn)中的“公共語(yǔ)言運(yùn)行庫(kù)支持”選項(xiàng)。點(diǎn)開(kāi)“公共語(yǔ)言運(yùn)行庫(kù)支持”,下拉選中“公共語(yǔ)言運(yùn)行庫(kù)支持,選擇(/clr:oldSyntax)”。
原因:
2003使用的是.NET FRAMEWORK 1.1,但是2005使用的是2.0,也就是C++/CLI,這用語(yǔ)法不同于MC++(Managed C++),因此無(wú)法直接編譯。但是MC++仍然被支持,可以在/clr后面加上:oldstyle。就是說(shuō)cl yourcode.cpp /clr:oldstyle
Deitel的書(shū)我也看過(guò),還挺貴的,沒(méi)想到語(yǔ)法變了,呵呵……:~(
不過(guò)FrameWork架構(gòu)還是可以從該書(shū)體會(huì)得到的!