2011-09-19 45 views
0

可能重複:
MFC Dll with COM InterfaceDLL工程在MFC應用程序,但沒有在.NET

我有寫在VC6的老DLL。我試圖讓這與.NET Winforms應用程序一起工作。我已經導入了DLL並調用它中的函數。這工作,我可以打破DLL看到一切都正確傳遞給它,但後來嘗試創建COM組件與CoCreateInstance DLL失敗。這種訪問衝突的錯誤。傳遞給它的MFC應用程序中使用的相同參數的DLL可以正常工作。

任何想法爲什麼這在.NET中但不在MFC中失敗?

回答

0

COM組件可能需要單線程單元(STA),而.Net線程位於多線程單元(MTA)中。嘗試僅從特定的STA線程調用您的DLL。

+0

如何在.NET中確保這一點? – Jonnster

+0

我現在已經從它自己的線程調用了DLL。我在調用Start之前通過調用SetApartmentState將此線程設置爲STA。但是,它沒有任何區別。 – Jonnster

相關問題