我利用delphi开发一个DLL(设制报表用),DLL中包含有Form、ADO数据集和报表相关控件。问题是:当接口函数中带有字符串参数(数据库名)时,预览报表后再关闭报表提示,地址冲突应用程序中止。接口函数中不带字符串参数正常。我的DLL中引用了ShareMem单元。

解决方案 »

  1.   

    你的调用方式是不是错了,stdcall和cdecl方式都试试
      

  2.   

    你的调用方式是不是错了,stdcall和cdecl方式都试试
      

  3.   

    to yueyixing:
      使用cdecl调用方式接口函数中带一个参数没问题,当带两个参数调用DLL提示:Project DLLtest.exe raised exception class EAccessViolation with message 'access violation at address xxxxxxx in module 'ETestdll.dll'.'Read of address xxxxxx 'process stoped.
      这两个参数(string类型)传递的是数据库名称和路径连接成字符串后,赋值给ADO链接控件的ConnectionString属性.请问这问题出在哪里?
      

  4.   

    to yueyixing:
      我把调用方式去掉就行了.但我未明白是何原因!可否解释调用方式譬如,stdcall、cdecl等?