我在VisualStudio中开发了一个.NET DLL,它应该通过Outlook发送电子邮件。
我们的ERP系统的开发人员希望集成这个DLL并传递一些参数,如发送者和接收者,主题等。
他使用以下代码:
OLEObject obj_OES
long RetValue
obj_OES = create OLEObject
RetValue = obj_OES.ConnectToNewObject("OutlookEMailSender.OutlookEMailSender")
Messagebox ( "ConnectToNewObject" , RetValue )
RetValue = obj_OES.object.SendMail("receiver","Test 1","account","sender","htmlbody","","C:\\data.pdf")
Messagebox ( "SendMail" , RetValue )
我们的开发人员说上面的代码只运行已注册的DLL。
还有其他办法吗?
答案 0 :(得分:2)
您需要将.NET DLL公开为COM库。然后PowerBuilder可以使用它。您需要在程序运行的系统中注册DLL或使用Registery-less COM。
布鲁斯·阿姆斯特朗在这里写了一篇文章解释:http://pbdj.sys-con.com/node/397016
答案 1 :(得分:0)
为什么不直接使用OLE与Outlook交互?移动部件越少越好。这是一个PowerBuilder代码示例: