2014-09-30 118 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