Closed Tibalt closed 3 years ago
能确定同一款软件,在任何windows(win 10, window server 等)操作系统的注册表中的clsid都一样么?
regconnectregistry,regopenkeyex这两个函数后边有可能加w和a,具体参考 https://stackoverflow.com/questions/49073941/how-to-read-windows-registry-data-on-remote-machine-using-java
其实简单说,不要加a也不要加w,让api自己选择字符集。
能确定同一款软件,在任何windows(win 10, window server 等)操作系统的注册表中的clsid都一样么?
@rockysroll 可以在官方文档中了解一下注册表clsid是什么意思,然后推断一下是不是clsid不会变。如果我们推断不会变,要将clsid做成动态可配的。
能确定同一款软件,在任何windows(win 10, window server 等)操作系统的注册表中的clsid都一样么?
@rockysroll 可以在官方文档中了解一下注册表clsid是什么意思,然后推断一下是不是clsid不会变。如果我们推断不会变,要将clsid做成动态可配的。
clsid动态可配不需要在1.01中做。
我没有找到一个明确的说法,说progid对应的clsid唯一,不过基本上,这是个伪命题。比如,以下链接,就讲了如何修改progid
另外,progid的定义,简单一句话The format of a ProgID is <Program>.<Component>.<Version>
最后,一个帖子说明了如何拿到opc server的clsid。我感觉其中比较靠谱的方式是通过opc enum,也就是说当opc server 和local machine都有opc enum的时候,这种方式是可以的。我感觉opc expert就是这种方式。可以试一下。
添加逻辑读取本地配置文件获取classid,fix in http://192.168.103.237/iiot/opc-client.git 2ae69823
问题描述 使用CLIENT功能块读取OPC DA server数据时出错,无法正常获取数据。
重现方法 1.首先确定使用opc expert连接远程服务器,读取数据成功,确认OPC da相关配置没有问题; 2.运行可执行文件forte; 3.使用4diac打开opc client项目; 4.配置ID:opc[192.168.103.211:Matrikon.OPC.Simulation:2000:0.0:Random.Int2:Random.Int1]; 5.使用IDE deploy并watch数据变化和报错信息;
预期结果 可以正常读取到ID中配置的Random.Int1的数据,这个数据是随机变化的。
环境 (请填写以下资料):
其他 debug时可以看到出错打印信息如下: