2011-09-19 48 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

相关问题