c# 包装c++ 生成的dll然后套皮后再编译为一个新的dll,供java调用?

目前有个一个opcdaauto.dll,该dll使用c++编写,本想使用java JNA调用,但是查看了下这个dll暴露的函数只有四个DLL开头的函数,一番查阅才知道这个和windows的COM技术有关,java不是很好调用。但是我尝试了使用c#调用就很方便,直接引用就可调用。因为整个公司技术栈都是java,所以考虑到开发和维护使用c#成本都比较高,所以打算使用c#将该dll中的所有类与方法都包装一层,即使用c#将原代码中的所有类和方法套层皮再编译生成一个新的dll供java调用。
c#我也不懂,但是查了下这个理论应该可行,但是实际操作毫无头绪,百度一番也是无果,所以想请教各位大佬:

1、该路线是否可行?
2、具体操作该如何做?
3、复杂度怎么样?

不知道这个复杂度怎么样,我是感觉比我直接学c#要更麻烦,但奈何领导还是让用java,没办法唉

image.png

阅读 2.3k
2 个回答

不建议你用 C# 封装 COM,用 C# 封装开发貌似简单,但如果你本身对 C# 不够了解,学习 C# 本身就需要花不少的时间,而且你为了这个简单的需求每次产品还要带上整个的 .Net 包,感觉得不偿失。
如果封装的化,建议你直接再用 C++ 封装成一个 DLL,C++ 调用 COM 组件稍微麻烦一点,但有ATL 封装也还好,C++ 封装成 JNI 教程也满地都是。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏