如果你要写入字符串就要声明为:Public Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal HKEY As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
'例
RegSetValueExString HKEY_LOCAL_MACHINE, "注册表", 0, REG_SZ, ("注册表操作"), LenB(StrConv("注册表操作", vbFromUnicode))

解决方案 »

  1.   

    huangguanshu()你好!你说的这个我昨天从你回的贴子中已经知道,但是有两点我还是不清楚,请指教:1、对于RegSetValueEx这个函数,msdn中说它可以设置字符串呀!只需要加reg_sz的参数;2、RegSetValueExString这个函数无论是api文本浏览器还是msdn中都没有他的记载???
    多谢!!!
      

  2.   

    RegSetValueExString是RegSetValueExA的别名。
    RegSetValueEx是可以,但必须加上bvval'例
    RegSetValueEx HKEY_LOCAL_MACHINE, "注册表", 0, REG_SZ,Byval ("注册表操作"), LenB(StrConv("注册表操作", vbFromUnicode))
      

  3.   

    我还是不太清楚,用qq谈好吗?我的qq是:25396846!如果不行,也随便回一句话,我好给你加分!
      

  4.   

    在api文本浏览器RegSetValueEx的声明是这样的。
    Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long      
                    -------------
    由于这里的类型是Any,所以在使用必须加上Byval ,如果定义为String 或者 Long 就不用了。