成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

巧用C#做中間語言 實現Java調用.net DLL的方法

開發 后端
本文為大家講一個用C#做一個Com,調用.net DLL實現加密解密的方法,然后提供給java使用,達到利用java調用.net DLL的功能。

51CTO曾經為大家講過“Java與.NET的WebServices相互調用”,但是如何實現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

代碼

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Runtime.InteropServices;  
  6.  
  7. namespace TestCom  
  8. {  
  9.     [Guid("E9BCF867-CD81-40d0-9591-ED28D1ED2B53")]  
  10.     public interface IEncrypt  
  11.     {  
  12.         [DispId(1)]  
  13.          string GetEncrypt(string str,string str2);  
  14.     }  
  15.     [Guid("33A6E58D-E1F5-4b53-B2E2-03B9F8BA2FAD"), ClassInterface(ClassInterfaceType.None)]  
  16.     public class Encrypt:IEncrypt  
  17.     {  
  18.         public Encrypt(){}  
  19.  
  20.         public string GetEncrypt(string str,string str2)  
  21.         {  
  22.              
  23.              return  "測試 | "+str+"|"+str2;  
  24.         }  
  25.     }  

打開 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調用代碼

代碼

  1. import com.jacob.activeX.ActiveXComponent;  
  2. import com.jacob.com.ComThread;  
  3. import com.jacob.com.Dispatch;  
  4. import com.jacob.com.Variant;  
  5. public class test {  
  6.  
  7.     /**  
  8.      * @param args  
  9.      */  
  10.     public static void main(String[] args) {  
  11.         // TODO Auto-generated method stub  
  12.         try{  
  13.             ActiveXComponent dotnetCom = null;  
  14.             dotnetCom = new ActiveXComponent("TestCom.Encrypt");  
  15.             Variant var = Dispatch.call(dotnetCom,"GetEncrypt","哥是***個參數","哥是第二個參數");  
  16.             String str  = var.toString(); //返回值  
  17.             } catch (Exception ex) {  
  18.                 ex.printStackTrace();  
  19.             }  
  20.     }  
  21.  

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

 

原文地址:http://www.cnblogs.com/windsor/archive/2010/06/17/1759289.html

 

【編輯推薦】

  1. Java與.NET的WebServices相互調用
  2. 平臺之爭 Java與.NET誰更有前途
  3. Java與.NET 誰能主宰未來?
  4. Sun提高Java與.Net兼容性
責任編輯:佚名 來源: 汪翔blog
相關推薦

2009-08-14 16:25:36

C#中間語言和元數據

2009-08-03 12:57:27

C#調用DLL

2009-07-31 17:28:35

C#語言調用DLL

2009-08-05 09:40:02

C#調用DLL函數

2009-08-05 09:30:39

C#調用DLL函數

2011-04-08 09:52:44

C++C#DLL

2010-01-15 16:12:40

VB.NET調用DLL

2009-08-07 17:22:36

C#調用dll導出函數

2009-08-05 17:06:39

ASP調用C# DLL

2024-05-16 12:33:37

C#編程指針

2009-08-05 16:41:36

C#調用VC dll

2009-09-02 17:16:01

冒泡排序

2009-07-27 14:13:56

調用c#方法Java scriptASP.NET

2010-08-23 14:51:37

保護.net反編譯

2009-08-05 15:04:14

C# dll注入

2009-08-05 09:22:43

C#調用VC DLL

2009-08-05 16:49:42

C#中調用dll

2009-08-05 09:09:14

C#調用VC DLL接

2009-08-31 16:33:28

C#調用Dispose

2009-08-31 18:05:14

C#調用WalkTre
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频一区二区三区四区 | 黄色大片在线播放 | 一区二区三区视频 | 精品欧美激情在线观看 | 亚洲色图网址 | 99精品免费在线观看 | 中文字幕一区二区三区在线乱码 | 亚洲精品一区在线观看 | 欧美一区二区另类 | 九九热精品视频 | 久久久久一区二区 | 国产精品久久av | www.久草.com | 99久久精品国产一区二区三区 | 人人看人人干 | 国产精品成人av | 久草网址 | 毛片区| 91精品国产欧美一区二区 | 日韩欧美成人一区二区三区 | 亚欧精品一区 | 91免费在线看| 成人影院在线视频 | 在线观看亚洲欧美 | 欧美激情在线观看一区二区三区 | 在线精品国产 | 久久一区二区三区四区五区 | a在线观看 | 久久精品免费一区二区 | 亚洲天堂精品一区 | 国产午夜精品久久久久免费视高清 | 国产一二区视频 | 久久中文字幕一区 | 日韩一区二区三区在线播放 | 日韩在线一区二区三区 | 综合色在线 | 久久久久亚洲精品中文字幕 | 日韩电影免费在线观看中文字幕 | 久久日韩粉嫩一区二区三区 | 亚洲欧美日韩在线 | 中文字幕在线看人 |