我用C#创建了一个应用程序,该应用程序可以从SQL Server读取商品数据,并将其推送到名为"SLP-V Ishida Retail Scales"的秤系统。他们有一个接口"SLP-V自动化接口",允许用户程序与他们的系统交互。这是SLP-V:中帮助页面的注释
自动化接口(也称为"COM(公共对象模型)接口")为用户程序访问SLP-V函数提供了一种方法。最常见的应用程序是使用VB脚本来自动执行SLP-V操作,例如导入主机文件。然而,自动化接口可以在任何支持自动化(COM)的编程环境中使用,这是将SLP-V功能合并到最终用户应用程序中的首选方法。
本主题提供了SLP-V自动化对象的方法和属性的参考,并包括一些示例程序。
SLP-V自动化对象
SLP-V自动化对象名称为"Ishida.SLP.Scripting.CommonApi",类型库文件为"SlpScripting.tlb"。
我的问题是,C#语言是否允许我们使用OLE Automation与其他程序交互?如果答案是肯定的,我该如何与我的程序交互?我的意思是喜欢调用他们的方法。因为我不能添加SlpScripting.tlb
作为参考。上面写着
无法添加对"SLP脚本接口"的引用ActiveX类型库"SlpScripting.tlb"是从.NET程序集导出的,不能作为引用添加。添加对.NET程序集的引用,而不是
我在谷歌上搜索过这件事,但没有找到答案。
终于找到了一个解决方案我不必在c#中添加引用,而只需使用:
System.Type objType = System.Type.GetTypeFromProgID("The name of progID that you want to call");
dynamic comObject = System.Activator.CreateInstance(objType);
- 示例ProgID="Ishida.Slp.Scripting.CommonApi">
然后只调用该对象中存在的函数/方法,例如:
comObject.LoginToHost("localhost", 8085, username, pass);
您有以下选项:
方法1
首先在开发系统上"注册"COM库。在SLP系统的文档中,这可能已经在设置过程中完成了。如果没有,通常可以使用regsvr32 XXX.DLL手动注册COM DLL。请注意32/64位问题(如果要在64位Windows中注册32位COM DLL,请使用C:WindowsSysWOW64regsvr32.exe
)。
然后,如果你转到,你的COM DLL应该在Visual Studio中列出
添加参考===>COM
如"SlpScripting Type Library 1.0"或类似内容。
然后,添加一个"使用SLPxxxx"或类似的名称(Intellisense应显示真实名称)。
在此之后,您应该能够创建COM对象的新实例。
要获得更多帮助,请搜索"C#互操作",您会发现很多信息。
方法2
打开Visual Studio命令提示符,然后输入:
tlbimp SlpScripting.tlb
将创建一个DLL,您可以将其添加为引用。