![]() |
1
0
据我所知,常量和字符串都被转换为olestring/bstr(widestring)。但既然你有这些问题…大概不会。
编辑: 文件不是很清楚。 您可以尝试以下几种方法:
代码:
当以上代码有效时,请尝试以下操作:
注意:我不喜欢第二步,但如果它有效的话……为什么不。在我看来,你使用的COM库中有一个bug。 编辑2: 我研究了使用常量和普通字符串生成的代码。通过常量,我看到第一个字符在堆栈上被推送的地址,通过字符串,我看到指向一个字符串的指针在堆栈上被推送的地址。 通过下面的代码,我可以模拟与常量相同的行为:
|
![]() |
2
0
您的代码中有一些问题,而且很高兴知道您使用的Delphi的版本,以及add()调用使用的参数类型。总之,一些提示: wS:=宽字符串; 那是一个错误的排版。它不会将字符串转换为宽字符串,它只会强制将内存解释为宽字符串。使用 WS:= S; 编译将注意调用转换例程。 |
![]() |
3
0
你不必发明轮子。在Delphi中使用opc有很多库、示例和示例代码。有关免费Delphi OPC服务器和客户端,请查看以下内容: http://www.opcconnect.com/delphi.php . |