爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3789|回复: 0

[源程序] java调用c#制作的surfer功能

[复制链接]

新浪微博达人勋

发表于 2017-9-18 13:49:44 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
环境为window,liunx暂不支持c#版的dll发布。
步骤一:使用vs创建dll,编写调用surfer绘图工具进行绘图,以下为代码
步骤二:编写完成的类文件必须加属性:
   [ComVisible(true)]
    [Guid("063B2593-0420-474B-9C97-D4FFDE1EB46E")]
    [ProgId("lcjPlug_v01.DrawContour")]
步骤三:创建接口类,进行发布;
[ComVisible(true)]
    [Guid("575CB162-269E-445B-AB22-BFCFB1B5D3FB")]
    interface ILcjPlug
    {
        void dzmSurfer(float xMin, float xMax, float yMin, float yMax, string path, string jsonObj);
        void removeBlock(string currPath, string diskPath);
    }
步骤四:注册dll为com组件。使用c#自带的regasm进行注册;注册完成后在注册表中HKEY_CLASSES_ROOT查看是否注册成功。
步骤五:使用java的jacob进行调用,以下是调用代码
public static void main(String[] args) {   
        // TODO Auto-generated method stub  
  
        try{   
            ActiveXComponent dotnetCom = null;   
            dotnetCom = new ActiveXComponent("您的dll");     //需要调用的C#代码中的命名空间名和类名。
            Variant var = Dispatch.call(dotnetCom,"您dll中的方法","第一个参数","第二个参数");   //需要调用的方法名和参数值
            String str  = var.toString();  //返回需要的字符串   
            System.out.println(str);  //输出得到的字符串。检查结果是否正确。
            } catch (Exception ex) {   
                ex.printStackTrace();   
            }   
    }   

QQ图片20170919171257.png
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表