遇到的现象和发生背景
一个工业软件的自动化,分为两部分,一部分是主程序,另一部分是软件的脚本
主程序的启动已经实现了许可限制,需要在软件的脚本(VBS)开发中也实现License控制
许可控制的思路
1.我用socket写了一个windows服务,用来提供License文件的解码与许可授权
2.主程序用TcpClient进行连接并获取模块授权,断开后终止所有模块授权
3.在工业软件的脚本(vbs)开发的功能中也需要去服务器获取License模块的授权,但是目前没有找到可以连接sockets的方法
4.打算用vb.net写一个dll然后让vbs去引用,在ExcelVBA中测试成功,在VBS中无法创建对象
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
Namespace zSockets
<ComClass(SocketClient.ClassId, SocketClient.InterfaceId, SocketClient.EventsId)> _
Public Class SocketClient
'Implements iSocketClient
#Region "COM GUID"
' 这些 GUID 提供此类的 COM 标识
' 及其 COM 接口。若更改它们,则现有的
' 客户端将不再能访问此类。
Public Const ClassId As String = "4942b316-6ebc-4ca6-8499-5a6dd07e9e9e"
Public Const InterfaceId As String = "d08ae6ff-aadd-4900-9510-abce13a0f8ec"
Public Const EventsId As String = "91c03c86-cc88-4ab9-931d-e03c8520f844"
#End Region
Private _ServerIP As String
Private _ServerPort As Integer
Private Client As TcpClient
Private br As BinaryReader
Private bw As BinaryWriter
Private _State As String
......
End Class
End Namespace
运行结果及详细报错内容
宿主WScript代码:
Set Socket = CreateObject("zSockets.SocketClient") (报错“系统找不到指定文件”)
宿主为第三方工业软件时,根本看不到我的类,只有一个命名空间
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我尝试在dll中加入了接口定义,在宿主工业软件时,只能看到我的接口,但是接口都是虚函数,无法创建对象
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
希望能提供解决思路,谢谢