我有一个使用DirectX的本地C++ DLL,我想通过C#使用它来创建内容创作工具。
添加COM似乎需要相当大的努力。能否使用P/Invoke来维护使用多态的类,或者是否需要包装大部分代码以便使用P/Invoke?
是否有更好的解决方案可用?或者我应该考虑使用Qt在C++中编写工具?
添加COM似乎需要相当大的努力。能否使用P/Invoke来维护使用多态的类,或者是否需要包装大部分代码以便使用P/Invoke?
是否有更好的解决方案可用?或者我应该考虑使用Qt在C++中编写工具?
我猜直接从C#使用D3D进行渲染不是一个选项吗?(因为那肯定会更容易!)
很久以前,我使用SWIG自动维护我的C++渲染DLL代码的C#“绑定”。它使用P/Invoke在C#端暴露C++对象,您将不再需要维护该代码。
你不需要在QT上编写包装。
我建议你在C#和C ++中编写Observer类,并将Native函数的调用隐藏到其中。架构如下:
你的C#代码 -> Observer(C#) -> 调用Observer(C++) -> 调用你的dll。