实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

最近因为工作需要,客户那边工程师使用的是JAVA语言开发的程序,我们这边平台中是用C#语言开发的,因为有些操作必须统一,所以我在网上查找解决方法,自己也实践过,在这里做个笔记吧,分享一下。

声明:下面操作主要分为两部分,第一部分使用C#编写com为了写这篇文章我是新建的操作demo,

第二部分ddd6789.html">java调用c#编写的com组件,因为是工作时的demo,因为当时有给客户写了使用说明,在这里拿一些截图出来用一下,为了节省时间,我就不再操作一遍了,如有不理解的可以留言。

一、使用C#编写com组件
  开发环境 :VS2017
  1、新建工程:CalcTest(类库项目,根据自己喜好需要取工程名,框架我这里使用的是:.NET Framework 4 ,你可以根据自己的来选。 (注:下面红色框和箭头和需要注意的地方)

  

实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

2、右键项目属性,点击项目属性,看到下面这个界面,点击红色框框"程序集信息,使程序集com可见,打上勾,如下图所示

程序集中其他信息可以根据个人喜好可写可不写。

实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

 3、选择生成看到以下界面,平台目标选择:X64, 为COM互操作注册(C) 勾上,如下图操作。

 

实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

 4、接下来是设置强签名,要以管理员的身份运行

  ①.找到Visual Studio Command Prompt (VS2017 开发人员命令提示)

        输入命令:sn -k D:/CalcComkey.snk 

     这里我生成的CalcComkey.snk 文件放在D盘,注意选择你自己的保存路径。
        VS2017 开发人员命令提示工具的路径是安装VS2017 路径下,你可以自己找一下,每个人安装位置不一样。
        比如我的是 :  C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2017\Visual Studio Tools

实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

 5、在签名 标签中选中 为程序集签名,选择刚刚生成的强名称文件CalcComkey.snk 。

 

实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

6、创建GUID

  通过点击工具 => 创建GUID => 选择4 => New Guid => copy => 替换下面  C#代码中的两个 GUID 值

创建GUID,新建复制,粘贴到代码中去就可以,把代码中那两个都替换掉。

实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; namespace CalcTest { [Guid("68E2A6FD-F437-4107-A6DB-E78714EC8D8B")] //GUID值 interface ICalc { [DispId(1)] int Add(int a, int b); //返回的int值,与需要调用的类的方法名一致。 } [Guid("60D60EE5-EAF3-482C-BE33-DED6BE635111"), ClassInterface(ClassInterfaceType.None)] //GUID值 public class Calc : ICalc //类名,接口名 ,必须定义接口 { public Calc() { } //定义具有两个参数的方法,返回计算结果。根据各自需要定义。 public int Add(int a, int b) { return a+b; } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzxwz.html