ShowCom的参数类型有string的吗?不要用了,改为pchar。dll中不用string做返回值和参数的类型。

解决方案 »

  1.   

    现在的问题好像不是参数问题因为我是delphi编写的dll
    调用程序也是delphi编写的,而且也没有string类型的参数
    主要问题好像是dll释放出现的问题。因为我在dll里面用到了一个
    串口控件,好像就是这个控件出的问题。
      

  2.   

    yansea(思宏)的说法好象有问题:
    BPL就是一种特殊的DLL,你看看VCL库中使用了多少string类型的参数和返回值?
    我在DLL中用过string类型,没有任何问题,只是不能被其它语言调用(可以被CBuilder调用).
    我决得问题还是在DLL的代码中.
      

  3.   

    ShowCom(Application.Handle,Caption,met_info,adm_info,pathstr)
    先看看这一步是否成功执行,
      

  4.   

    while i < 20000 do  //等待2秒
                    begin
                            Application.ProcessMessages;
                            Inc(i);
                    end;
    不能精确的延时2秒,应该改为:
                    i:=GetTickCount;
                    while GetTickCount-i < 2000 do  //等待2秒
                    begin
                            Application.ProcessMessages;
                    end;
      

  5.   

    一点建议:你把DLL部分的东西先直接加到你的工程里,进行调试,看是不是在DLL
    中隐藏了什么错误
      

  6.   

    你在Delphi 的Run 中的Parameters 加入你的宿主程序,直接调试你的DLL 看看是否出现问题?或者你写写日志,看看问题出项在那里?使用GetLastError 看看错误代码是什么?