这是在delphi里调用没问题
procedure FlashToMp3(FilePath : WideString; FileTo : WideString); stdcall;External'ToMp3Dll.dll';这是在vb里调用问题严重,它导致vb被杀进程退出。Private Declare Function FlashToMp3 Lib "ToMp3Dll.dll" (ByVal FilePath As String, ByVal FileTo As String) As Integer好像WideString(delphi)->String(vb)?

解决方案 »

  1.   

    procedure没有返回值。
    function有返回值。
    也许是栈操作出错?
      

  2.   

    你的delphi的wideString 是否是宽字符或者UNICODE字符。你把vb的String给他当然出错了。
    把你的delphi的dll改称字符串然后再你的dll中转换成widestring再用vb中调用应该没错。
      

  3.   

    二楼正解,vb的string能自动处理unicode,应该不是这个原因
      

  4.   

    搞定了,我把dll的字串类型改成string就可以了
    谢谢大家放分