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