是否可以从非托管C++代码调用CLR DLL(例如,一个用C#编写)?
我需要一个无法以某种方式调用它的DLL,甚至可能通过使用C++/CLI构建的一些代理C++进程?
@SWeko为您提供了最佳答案,如果您可以修改原始DLL,并且您的非托管代码可以依赖于访问COM公寓(其自己::CoInitialize()
的调用线程或非托管代码的调用线程具有一致的公寓).
如果不是这样,那么最好的解决方案是创建一个"托管"C++ DLL作为托管C#程序集的包装器.它叫做C++/CLI.您可以公开非托管C API操作,并在其实现中委托给托管API.它工作得很好,与调用COM API不同,没有线程关联问题.
归档时间: |
|
查看次数: |
2900 次 |
最近记录: |