我一直在嘗試使用Jacob從Java調用dll函數,但沒有取得任何成功。我已經完成了regrem的註冊,如此處所述 - http://www.dreamincode.net/forums/topic/114094-using-dll-library-in-java-application-using-jacob/。我的代碼:Jacob com.jacob.com.ComFailException:無法將名稱映射到dispid:
String serverName = "...", fileName = "...";
Dispatch dispatch = new Dispatch("dllx32conn.dbconn");
Dispatch.call(dispatch, "pass_para", serverName, fileName);
這不起作用。它會拋出com.jacob.com.ComFailException:無法將名稱映射到dispid:pass_para
因此,我決定使用JetBrains dotPeek反編譯dll函數。這裏是我發現的
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
namespace dllx32conn
{
public class dbconn
{
public static string conn_str = "";
public static string strFilePath = "";
public static SqlConnection Conn = new SqlConnection();
public static DataTable tbl;
public static SqlDataAdapter dap;
public static void pass_para(string servname, string csvpth)
{
dbconn.conn_str = "Data Source=" + servname + ";Initial Catalog=Billing;User Id=Scd;Password=Smart11Siri";
dbconn.strFilePath = csvpth;
}
}
}
我真的很感謝一些幫助,搞清楚這裏沒有發生什麼。謝謝。