2010-04-21 429 views
50

我剛從Visual Studio 2008搬到Visual Studio 2010(最終),發現一個重大缺陷:Visual Studio 2010中的C++/CLI沒有智能感知?

當我嘗試在C++源文件的託管C頁腳中使用自動完成++,小記會出現:

智能感知的C + +/CLI不可用

呃,智能感知的C + +/CLI已從視覺 工作  2010?有什麼辦法讓它回來嗎?它相當有用...

+0

可以啓用 請參閱我的答案在這裏 http://stackoverflow.com/a/29333749/1966084 – yanger 2015-03-29 19:38:31

回答

46

你是對的。不幸的是它已經被丟棄了。您可以在Microsoft's Connect website上查看此問題。

我就引用他們的答案的緣故:

不幸的是在這個版本中,我們必須爲C++/CLI的IntelliSense支持削減由於時間的限制。如果你想獲得一些智能感知像本地類的快速信息和成員列表,你可以通過在項目屬性中選擇no/clr支持來獲得它。

關於回收智能感知,您現在最好的機會是使用第三方工具,如VA Assist。我用Visual   Studio   2008試過,它的智能感知比默認的好很多。

它在Visual Studio 2012中再次可用。

+0

ARG! 感謝您的信息!我會看看VA X ...或推遲我們的VS2010。 – Sam 2010-04-21 10:50:29

+3

如果你使用C++/CLI,VA X是一個「必須擁有的」......但是根據我對C++/CLI的經驗,我建議儘可能遠離它! – surfen 2012-03-14 09:53:10

+0

如果他們沒有爲VS2012「固定」它,那麼人們會懷疑他們是否購買了整個番茄,並將其作爲偷偷摸摸的現金搶購。希望他們能夠通過Service Pack爲VS2010進行恢復。 – Synetech 2013-06-06 14:07:33

8

如果您想要獲得智能感知,請從Whole Tomato Software安裝Visual Assist X。在這裏,您可以獲得30天的試用期來檢查智能感知。

8

根據Visual C++ Team Blog,C++/CLI Intellisense將在Visual Studio的下一個版本中,但不在VS2010的Service Pack中。該博客文章還詳細介紹了哪些方面出了問題,並導致了這種悲傷狀態。

+3

我對本機代碼感覺不好。他們真的很短暫。 – surfasb 2011-07-01 23:41:36

+3

這很有道理,MS希望人們放棄非託管(快速讀取,小型)代碼並轉移到他們的Java版本。 ☹ – Synetech 2013-06-06 13:50:12

6

我不知道你是否可以使用這個設置,但它適用於我。我只檢查使用它的cpp文件的公共語言運行時支持。我不檢查整個項目,我對所有不使用CLI的文件都有智能感知。

1

是的!您可以啓用IntelliSence,但方式棘手。按照這些說明:

  1. 轉到您的項目屬性。 (右鍵單擊您的項目名稱在 項目資源管理器,然後選擇屬性。或者乾脆Alt鍵 + 輸入
  2. 從配置屬性,選擇常規
  3. 在右側部分中,找到「公共語言運行庫支持「 並將其更改爲」無通用語言運行時支持「。
  4. 單擊確定按鈕。

現在IntelliSence正在工作。但編譯代碼時出現問題是一個錯誤!(錯誤是:錯誤LNK1123:轉換到COFF期間失敗:文件無效或損壞

你可以簡單地返回到項目屬性的改變公共語言運行庫支持「公共語言運行庫支持,舊語法(/ CLR:oldSyntax)」。

祝你好運。

0

該解決方案是隻有在你不想公共語言運行庫
它爲我在VS2010
轉到項目Propreties>配置屬性>常規>公共語言運行庫支持和設置到沒有公共語言運行時支持。 按下應用按鈕後,這將工作正常。

0

如前所述,您可以安裝一些付費軟件,例如「Whole Tomato軟件中的Visual Assist X」。

你可以使用包含智能感知*開源工具,一個這樣的工具是Qt Creator的3.3.1(開源)。你有兩個選擇,要麼用Qt設置你的整個項目,使用VS2010編譯器進行編譯,要麼使用Qt鏈接到源文件,並使用VS2010進行編譯。你在Qt中編寫代碼,保存,將窗口翻轉到vs2010並編譯和調試。

當更改保存在Qt中時,vs2010會自動重新加載項目中的源文件並且可以編譯。