2015-01-07 79 views
1

我有一個COM DLL,它描述了多個版本的接口。這個DLL也依賴於其他2個常規DLL文件作爲依賴關係(這是我的猜測,我也有這2個DLL)。使用來自Java的COM .dll而無需使用regsvr32註冊該庫

使用Visual C++附帶的COM/OLE瀏覽器,我可以生成.IDL文件,因此我知道接口中有哪些方法。

我不明白如何創建一個java對象委託給COM DLL中的方法,而無需使用regsvr32註冊DLL。我也不知道在這種情況下應該如何解決'其他DLL'的依賴關係。

我試過閱讀關於com4j,JACOB等,但是我發現的所有內容都集中在使用其COM接口的Word/Excel/PowerPoint/Outlook自動化。

回答

1

我從來沒有使用過JAVOB(或任何其他Java - > COM Bridge),但我期望使用Office自動化對象應該與使用任何其他COM組件沒有什麼不同。

一個可能的差異與您將如何訪問組件(早期/後期綁定或自定義界面或調度界面)有關。

如果我處於您的位置,我首先嚐試註冊/訪問組件(使用JACOB,com4j或任何其他COM橋接器)。只有在得到這個場景的工作後,我纔會進入下一步:試圖擺脫註冊COM DLL的要求(檢查registration free COM activation - 它可能工作)。

如果您在註冊dll後無法訪問組件,您可能仍然嘗試使用其他語言(例如C#或VB.NET,VB 6,Delphi,C++等)以更簡單的COM集成來測試您的註冊。

有關更多信息registrationfreeCOM activation

+0

我已經嘗試過使用C# - 如果我註冊dll,一切正常。儘管我沒有註冊C#,但是我無法得到它,因爲我對COM和C#不夠了解。 –

+0

好的,你有沒有試過使用免費註冊的東西? – Vagaus

+0

我試圖按照現在的教程,從MSVS 2013得到奇怪的錯誤,但StackOverflow幫助:) –