我需要在一些C#代码中访问本地C++ DLL中的代码,但是在解决编组问题时遇到了问题。我以前用过直接的C代码做过这个,但似乎发现使用C++类不是直接可能的。由于许多类包含虚拟或内联函数,这使得情况更加复杂。我甚至尝试通过PInvoke Interop Assistant传递头文件,但它会对几乎所有内容进行阻塞,并且不知道该怎么做... 我猜测这是因为它并没有真正支持。
那么,如果可能的话,如何从.NET代码中使用本地C++类DLL。 如果必须使用某些中介(CLR C++?)那也没关系。
那么,如果可能的话,如何从.NET代码中使用本地C++类DLL。 如果必须使用某些中介(CLR C++?)那也没关系。
在C#中真的没有简单的方法来实现这个功能-我建议在C++/CLI中创建一个简单的包装层,将C++类作为.NET类公开。
虽然可以使用P/Invoke和许多巧妙的方法来调用C++虚拟方法,但除非您确实没有其他选择,否则不建议采用这种方法。