java調用c# com組件編碼過程筆記

1.創建環境:vs2012 win7 java1.6

2.步驟:

(1);創建一個類庫項目RemoteCom,進入項目屬性,在應用程序的程序集選項中設置使用程序集com可見

(2);在生成選項中選中爲com互操作註冊

(3);打開vs的command prompt命令行客戶端,輸入sn -k remoteAppKey.snk生成簽名文件,默認生成在vs安裝目錄下的vc文件夾中

(4);打開簽名選項,選擇爲程序集簽名,選中瀏覽找到上一步生成的簽名文件

(5);c#代碼

using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace RemoteCom
{
    [Guid("BD6B85B2-CB93-49E1-8946-9ECC95B9A57B")]
    public class AppConnect
    {
        public AppConnect(){}
        public string ConnectToApp(string str, string str2)
        {
            Console.WriteLine("測試com組件");
            return "測試: " + str + " | " + str2;  
  
        }
    }
}

在工具中選擇生成Guid將生成的GUID複製到代碼的相應位置

(6);右擊項目選擇生成

(7);進入項目的Dbug目錄,複製.dll和.tlb兩個文件,複製到java的開發環境的bin目錄

(8);打開command prompt爲程序集註冊,輸入命令regasm RemoteCom.DLL /tlb:RemoteCom.tlb爲程序集註冊

(9);java代碼

public class TestCom {
      public static void main(String[] args){
    	 try{    
              ActiveXComponent dotnetCom = null;    
              dotnetCom = new ActiveXComponent("RemoteCom.AppConnect");     //需要調用的C#代碼中的命名空間名和類名。
              Variant var = Dispatch.call(dotnetCom,"ConnectToApp","juxinli\\xinhao","Info201311");   //需要調用的方法名和參數值
              String str  = var.toString();  //返回需要的字符串    
              System.out.println(str);  //輸出得到的字符串。檢查結果是否正確。
              } catch (Exception ex) {    
                  ex.printStackTrace();    
              }   
    	
      }
}



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章