我有一個非託管的c + +應用程序,提供了一個自定義_matherr處理程序。當此應用程序在非託管DLL中加載並運行代碼時,如果存在Math錯誤(例如asin(100.0)),則會調用自定義_matherr函數並且一切正常。我可以覆蓋C++/CLI DLL中的_matherr嗎?
但是,我現在正在嘗試在C++/CLI中創建一個NUnit測試DLL,該DLL載入相同的非託管DLL並運行與上述應用程序相同的代碼。我想要做的是將_matherr函數添加到C++/CLI dll中,這樣當發生數學錯誤時,我可以執行一些自定義處理程序邏輯。
C++/CLI dll編譯得很好,定義了_matherr函數,但是當我強制從非託管dll發出數學錯誤時,_matherr函數不會被調用。
這不被C++/CLI支持嗎? MSDN文檔似乎說,所有C運行時間都支持_matherr(連接到包含/ clr運行時的運行時列表)。