2013-01-15 23 views
0

可能重複:
Using C# COM in unmanaged C++ project -> First-chance exception at 0x7697C41F (KernelBase.dll)代碼中的.h聲明和定義的.cpp給出錯誤調用DLL時

我有一個從Visual Studio 2005升級到Visual Studio中的一個項目2010(Project1)並輸出一個dll。它是C++與clr(它與一個C#項目接口)。

我正在使用從另一個VS2010項目(項目2)(都有相同的c + +目標,都調試和Win 32)的DLL。

在project2中,dll接口使用靜態使用的類。 這是問題發生的地方。到目前爲止,如果我執行.h中聲明的函數,但在cpp中定義的函數,則會出現錯誤。如果函數在.h中聲明和定義,那麼沒有問題。 Error from trying to access function defined in cpp

在升級到VS 2010之前,這工作。任何想法?

+0

如果該功能在.H定義,那麼它的DLL不再一部分,或者更確切地說,它可能無論是在應用程序*和*的DLL存在。 –

回答

0

您可以使用__declspec(dllexport)來檢查應該是在DLL中的函數是否正確導出(意思是在二進制文件中「存儲」)。

+0

好吧,外部可見函數好像看起來(我可以進入它們並調試它們),但是當函數試圖調用在靜態類中聲明的函數時(但在該類'cpp中定義的) – Fry

0

Hans Passant提供的關於類似錯誤代碼的鏈接看來,這個錯誤似乎是在啓動.NET 4.0 clr時在調試模式下使用的IPC協議發生的未記錄的異常,並且可以安全地忽略。

Link to answer on msdn

相關問題