2010-01-19 72 views
2

我正在關注將.lib包裝在C++ DLL中的this tutorial基本的C++程序崩潰VS 2008

在我使用VS嚮導生成一個Win32 DLL項目之後,一切都編譯得很好。

然後,跟隨的教程,我替代這次VS-生成的代碼:

DEMODLL_API int fnDemoDll(void) 
{ 
    return 42; 
} 

此代碼:

DEMODLL_API int fnDemoDll(int a,int b) 
{ 
    return a+b; 
} 

當我然後建立,該VS 2008 SP1 IDE崩潰。

谷歌出現這種類型的崩潰幾個點擊,但似乎沒有適用。

沒有在事件查看器相關的崩潰的條目:

錯誤應用程序devenv.exe,9.0.30729.1 版本,時間戳 0x488f2b50,錯誤模塊 VCProjectEngine.dll,版本 9.0 .30729.1,時間戳0x488f2e94,異常代碼0xc0000005,錯誤 偏移量0x0003dd11,進程ID 0x1f80, 應用程序啓動時間 0x01ca98d27f9c8b85。

UPDATE:

我重建項目,編譯它是罰款,改變

return 42; 

return 43; 

和VS再次崩潰。

+0

我會不做代碼生成並自己手動編寫它。 – StackedCrooked 2010-01-19 07:47:05

+0

我認爲項目嚮導已經被使用了數倍,並且懷疑這是實際代碼的問題。 – 2010-01-19 17:22:20

+0

這並不是說嚮導代碼是不正確的,只是通過自己編寫代碼,您更清楚代碼的所有方面,這可能會幫助您找到該錯誤。 – StackedCrooked 2010-01-20 11:40:57

回答

2

確切的代碼可能是不相關的。這是IDE,而不是編譯器崩潰。你能否以另一種方式開始構建?

+0

當我今晚回家時,我會從命令行着眼於構建(這是一個業餘愛好項目)。 – 2010-01-19 17:20:58

+0

我找到了一種避免在我的項目中使用C++的方法,所以從來沒有解決過這個問題。 DevEnv在從命令行編譯時也會崩潰。當VS2010是RTM的時候,我可能會把它弄掉。接受,因爲答案是準確的,並提供了一個前進的方向。 – 2010-01-22 02:27:48

0

我的VS 2008有類似的問題。對我來說,發生的事情是,IDE突然關閉,沒有更多的信息。

然後我試着用DebugDiag來調試IDE。該程序可以調試外部應用程序,轉儲它們的符號,執行堆棧跟蹤等。對於這些類型的問題可能非常有用,因爲您不知道可能會導致此問題的原因。

我的問題已通過將智能感知重命名爲新名稱(因此已禁用)而解決。你的問題可能會有所不同,但DebugDiag可以幫助你診斷。

如果你婉嘗試禁用智能感知,看看它是否適合你,嘗試重命名\微軟的Visual Studio 9.0 \ VC \ vcpackages \ feacp.dll到別的東西,看看它是否工作。但是,這似乎不是你的問題。

+0

我同意它可能不是Intellisense,因爲崩潰發生在構建過程中,但我會試試它。感謝您分享您的體驗。 – 2010-01-19 17:23:29