2010-08-21 46 views

回答

3

doc

/CLR:純產生一個微軟 中間語言(MSIL)不具有天然 可執行代碼-only 輸出文件。不過,它可以包含編譯爲MSIL的本機類型。

/CLR:安全產生MSIL只(無 本地可執行代碼),可驗證 輸出文件。/clr:安全啓用 驗證診斷(PEVerify 工具(Peverify.exe))。

+0

這是否阻止我從我的c + + cli程序集中訪問DirectX或win32代碼? – Gusdor 2011-02-07 09:21:57

+0

我也想知道,如果這些只是類型檢查,或者如果這些標題放在標題中標識爲純粹或安全? – 2017-12-17 07:17:22

0

我不認爲這是足夠的信息。從另一個答案看來,這只是類型檢查。從this doc看來,它遠不止於此。

/clr(未/clr:pure/clr:safe)用於和__clrcall未使用,取一個函數的地址總是返回本地入口點函數的地址。使用__clrcall時,不會創建原生入口點函數,因此您將獲得託管函數的地址,而不是入口點thunk函數。有關更多信息,請參閱Double Thunking。

/clr(公共語言運行庫編譯)意味着所有的函數和函數指針是__clrcall,編譯器將不允許compiland內的功能將被標記比__clrcall其他任何東西。當使用/ clr:pure時,只能在函數指針和外部聲明中指定__clrcall