我的问题与 Calling a C# .dll from Ruby via COM 非常相似
我是一名使用 Ruby/WebDriver 的开发人员,在自动化我们的 Web 应用程序方面取得了很多成功。我想通过我们的电子邮件服务发送通知,为此,我的电子邮件正文必须通过用 vb.Net 编写的密码 DLL 进行加密。
我的问题是,dll 文件的哪些部分或属性对应于“new”方法的 OLE 服务器参数?具体来说,如果我正在创建一个对象 new_ole_thing = WIN32OLE.new('whatgoes.here')
对于 Excel,它是 (Excel.Application)
,在上一个链接的问题中,它是 ('DllAttempt.CsharpDll')
。我的问题的第二部分是该 dll 理想地位于我的应用程序的文件结构中的哪个位置?同一目录?或者我如何指向它/需要它?
此外,该文件刚刚使用可用的 COM 重新编译。
谢谢!
最佳答案
如果您使用任何技术创建 COM dll,它将在注册表中注册。然后,您可以使用操作系统中的标准例程,使用“progid”在注册表中查找 dll 位置。
progid 是文本名称。您可以使用 oleview 查看详细信息(Visual Studio 附带,可能还有 Windows SDK)
progid 将在定义作为 com 对象公开的类的接口(interface)的 VB 代码中设置。在 c# 中,它是您指定的属性 - called ProgId .
关于.net - Ruby WIN32OLE 可以访问 .NET .dll 的要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130759/