日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 制作Com组件:java调用.net DLL的方法

發布時間:2023/12/13 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 制作Com组件:java调用.net DLL的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文將詳細為大家介紹一個java調用.net DLL的方法,以實現特殊的客戶的特殊要求:“在Java項目中必須使用其提供的用.net寫的DLL加密機制!”

環境與工具:

◆.net framework 3.5 C#

◆java jdk1.5, Tomcat 5.5

◆jacob-1.15-M3

實現例子:

一、C# 制作Com組件

新建一個Class 項目,取名TestCom

代碼

using System;? using System.Collections.Generic;?
using System.Linq;? using System.Text;?
using System.Runtime.InteropServices;??
namespace TestCom?
{????? [Guid("E9BCF867-CD81-40d0-9591-ED28D1ED2B53")]?????
public interface IEncrypt?????
{????????? [DispId(1)]??????????
string GetEncrypt(string str,string str2);?????
}?????
[Guid("33A6E58D-E1F5-4b53-B2E2-03B9F8BA2FAD"),
ClassInterface(ClassInterfaceType.None)]?????
public class Encrypt:IEncrypt?????
{????????? public Encrypt(){}??????????
public string GetEncrypt(string str,string str2)?????????
{???????????????????????????
return? "測試 | "+str+"|"+str2;?????????
}?????
}?
}

打開 Project--> Properties菜單 在Application標簽中打開 Assembly Information 將Make assembly Com-Visible一項選中。再切換到Build標簽將 Register for COM interop一項選中。

Guid的生成:打開Visual Studio Command Prompt 輸入guidgen 命令調出工具。類型選擇Registry Format,點擊New Guid,然后COPY出來。

[DispId(1)]為函數的標識。如果有多個函數可相應的在函數前面加[DispId(2)], [DispId(3)]…

編譯程序Debug目錄中會生成 TestCom.dll 和TestCom.tlb

手工注冊Com方法:

打開Visual Studio Command Prompt進入Debug目錄,運行命令注冊:regasm TestCom.DLL /tlb:TestCom.tlb

二、Java調用Com

部署jacob

◆在開發環境中引入jacob.jar

◆拷貝jacob-1.15-M3-x86.dll 文件到 C:\Windows\System32目錄,如果是Web應用的話還需要拷貝到jdk1.5.0_16\bin目錄(jdk安裝目錄下的bin目錄)

java調用代碼

代碼

import com.jacob.activeX.ActiveXComponent;?
import com.jacob.com.ComThread;?
import com.jacob.com.Dispatch;?
import com.jacob.com.Variant;?
public class test
{??????
/**?????? * @param args?????? */?????
public static void main(String[] args)
{?????????
// TODO Auto-generated method stub?????????
try
{?????????????
ActiveXComponent dotnetCom = null;?????????????
dotnetCom = new ActiveXComponent("TestCom.Encrypt");?????????????
Variant var = Dispatch.call(dotnetCom,
"GetEncrypt","哥是第一個參數","哥是第二個參數");?????????????
String str? = var.toString(); //返回值?????????????
} catch (Exception ex)
{?????????????????
ex.printStackTrace();?????????????
}?????
}??
}

這便完成了Java調用.net DLL的方法!

轉載于:https://www.cnblogs.com/bihailantian/archive/2010/09/25/1834656.html

總結

以上是生活随笔為你收集整理的C# 制作Com组件:java调用.net DLL的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。