用PChar类型?应该是指针错误问题啊。

解决方案 »

  1.   

    Dephi 中String与VB中String不一样, VB中定义后要分配空间.
    eg: 
    dim  x as strng;
    x="XXXXXXXXXXXXX" ' 你要多长有写多长
    call dephidll(x)
      

  2.   

    谢谢zhuguohun,我按照你的方法试过了,还是不行。
    VB中的STRING是一个32位的指针,即使预先赋值,到DLL中,该指针将指向由DLL分配的空间,所以你的方法不管用。
      

  3.   

    要采用Byval传递参数,同时要在VB中分配空间
      

  4.   

    你们说的让我好奇怪,我用PChar类型用ByVal传递从未出过问题啊!
      

  5.   

    感谢各位的帮助,我的问题已经解决。
    thirdapple:您可能未能理解我的意思,我是要把VB的参数传到DLL中,由DLL改写后传回来,所以不能用BYVAL。
    事实证明,我原先的推测是正确的。
    为了让大家一起提高,把我的方法介绍一下:
    VB声明STRING变量后,必须分配空间;DLL中,必须用STRCOPY方法将值复制到该参数,而不能直接赋值。