DLL
function RdmStr() : WideString;StdCall;  //返回数据库连接串
begin
Result :=
'Provider=SQLOLEDB.1;Password=XXX;Persist Security Info=True;User ID=XXX;Initial Catalog=WorkService;Data Source=XXXX;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False';
end;
-------------------------
以下是在程序中调用,没有提示错误。可是无法读取数据,请大家帮帮忙.
function RdmStr(): WideString;StdCall;External 'User.dll' name 'RdmStr';Ldm.ADOConnection.Connected := False;
Ldm.ADOConnection.ConnectionString := RdmStr(); 
Ldm.ADOConnection.Connected := True;

解决方案 »

  1.   

    uses ShareMem在DLL和引用DLL的单元中放在USES列表的第一位置
      

  2.   

    To:hanlin2004(渴死的鱼)
    还是不行,而且多了BUG.“invalid pointer operation”
      

  3.   

    用char 或 string看看,语法应是正确的
      

  4.   

    To:yat5460(姚小杰)
    如果用Char在DLL中,根本无法编译.类型不符.
    用String我试过,连接成功。可是就取不出数据.
    ---
    To:大家
    大家以前是怎样实现的呢?
    是动态创建ADOConnection还是只存储连接串.
      

  5.   

    我用别的办法实现了.没有用DLL.谢谢大家.
      

  6.   

    使用PCHAR,或者在主调和被调中都加入那个单元,使用STRING,并且注意调用惯例正确!!
      

  7.   

    To:skypeople(飞飞)
    能不能发个简单的例子给我[email protected]