先声明
Public Declare Function getno Lib "a.dll" (ByRef p As string , ByVal nReg As Integer, ByVal nkx As Integer) As Integer再调用;
dim ret as integer
dim p as string
dim nReg as integer
dim nkx as integer
nReg=10
nkx=5
ret=getno(p,nReg,nKx)不知这样行吗? 

解决方案 »

  1.   

    申明错了!是:
    Public Declare Function getno Lib "a.dll" (ByVal p As string , ByVal nReg As Long, ByVal nkx As Long) As Long
      

  2.   

    同意;zyl910(910:分儿,我来了!) (
      

  3.   

    Public Declare Function getno Lib "a.dll" (p As byte , ByVal nReg As Long, ByVal nkx As Long) As Long在调用的时候对于第一个参数,将字符串转换为Byte数组,然后将数组第一个作为参数传递过去,例如:Dim x() as Byte
    Dim a as long
    dim b as long...
    getno(x(0),a,b)
      

  4.   

    ByVal传值
    ByRef传址字符串除外
      

  5.   

    如果想要VB调用,还要注意输出函数的调用协议。
    参考
    http://www.csdn.net/develop/read_article.asp?id=13460