欧美激情网,国产欧美亚洲高清,欧美屁股xxxxx,欧美群妇大交群,欧美人与物ⅴideos另类,区二区三区在线 | 欧洲

知識學堂
  • ·聯(lián)系電話:+86.023-75585550
  • ·聯(lián)系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學堂 > 網(wǎng)站建設(shè)知識
C# 制作Com組件:java調(diào)用.net DLL的方法
更新時間:2012-05-28 | 發(fā)布人:本站 | 點擊率:590

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

環(huán)境與工具:

◆.net framework 3.5 C#

◆java jdk1.5, Tomcat 5.5

◆jacob-1.15-M3

實現(xiàn)例子:

一、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 命令調(diào)出工具。類型選擇Registry Format,點擊New Guid,然后COPY出來。

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

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

手工注冊Com方法:

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

二、Java調(diào)用Com

部署jacob

◆在開發(fā)環(huán)境中引入jacob.jar

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

java調(diào)用代碼

代碼

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","哥是第一個參數(shù)","哥是第二個參數(shù)");             
String str  = var.toString(); //返回值             
} catch (Exception ex)
{                 
ex.printStackTrace();             
}     
}  
}

這便完成了Java調(diào)用.net DLL的方法!