当前位置:  开发笔记 > 后端 > 正文

从RegQueryValueEx返回的Concat字符串

如何解决《从RegQueryValueEx返回的Concat字符串》经验,为你挑选了1个好方法。

我想从注册表中读取一个字符串值,并将其与另一个特定的字符串连接起来.我正在调用RegQueryValueEx(),如下所示:

Dim lResult As Long
Dim sLength As Long
Dim sString As String

sString = Space$(256)
sLength = 256

lResult = RegQueryValueEx(hKey, "MyKey", 0, REG_SZ, ByVal sString, sLength)
MsgBox sString & "blah-blah-blah"

RegQueryValueEx()工作正常,我在sString中获取所需的字符串,甚至可以使用MsgBox显示它.但是当我尝试用"some_string"连接它时,我只得到了sString.Plz,帮帮我.

谢谢



1> Manne..:

字符串中可能存在空字符,因为VB字符串将字符串的长度存储在字符串内容之前的内存中.在你的情况下,长度为256.当你使用RegQueryValueEx加载内容时,它会终止字符串(C风格),但不会更改其指定的长度,因此在VB世界中它仍然是256个字符长.然后,当您追加第二个字符串时,它会在前256个字符后附加,但MsgBox仅显示最多为null字符的内容.

因为RegQueryValueEx将实际数据的长度放在sLength中,所以可以在MsgBox之前添加此行

sString = Left$(sString, sLength)

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有