2012-11-01 77 views
1

我有C#,C++/CLI和本機C++代碼的複雜組合。總之,我有什麼:在C++/CLI中處理C#異常

  1. 第三方託管的應用程序,即Visual Studio 2010的過程
  2. A C++/CLI DLL是通過這個過程,即裝,一個Evaluator Add-In
  3. AC

    :帶有Windows.Froms.Form類在裏面,這是由DLL

我顯示我的C#形式從C++/CLI DLL與ShowDialog方法示出#組件210

所有的工作都很好,除了我不知道如何處理表單執行過程中可能拋出的異常。我希望ShowDialog->Invoke調用只是拋出這些異常,但事實並非如此。

我試着在C++中設置AppDomain::UnhandledException處理程序,但它沒有被觸發。奇怪的是,我試圖用C#來設置它,但它也沒有被觸發。

那麼在這種情況下,我該如何處理在C#彙編中拋出的C++ dll中的異常呢?我完全控制了C++和C#代碼,但主機應用程序已關閉。

回答

2

ShowDialog->Invoke會拋出TargetInvocationException;這個InnerException將是表單拋出的異常。

+0

你完全正確!我被我用來模擬Visual Studio的啓動程序作爲宿主進程所愚弄。在這種情況下,出於某種原因,在發佈配置中我得到了這個錯誤對話框:http://i.stack.imgur.com/M2PyO.png任何想法爲什麼? – Mikhail