2014-09-30 50 views
1

我的問題是非常相似Calling a C# .dll from Ruby via COM要求可訪問由紅寶石WIN32OLE

我在紅寶石/ webdriver的合作開發,並有很多成功的自動化我們的Web應用程序。我想通過我們的電子郵件服務發送通知,並且要這樣做,我的電子郵件的正文必須由用vb.Net編寫的密碼dll加密。

我的問題是,什麼部分或屬性的dll文件對應於'新'方法的OLE服務器參數?具體而言,如果我正在創建對象new_ole_thing = WIN32OLE.new('whatgoes.here')

對於excel,它是(Excel.Application),在上一個鏈接問題中,它是('DllAttempt.CsharpDll')。我的問題的第二部分是該dll的理想位置在我的應用程序的文件結構中?相同的目錄?或者我如何指向它/需要它?

此外,該文件只是用COM可用重新編譯。

謝謝!

回答

2

如果您使用任何技術創建COM DLL,它將在註冊表中註冊。然後,您可以使用「progid」在os中使用標準例程查找註冊表中的dll位置。

progid是文本名稱。您可以使用oleview查看詳細信息(附帶visual studio和可能的windows SDK)

progid將在VB代碼中設置,該代碼定義作爲COM對象公開的類的接口。在C#中,它是您指定的屬性 - called ProgId