现有二个DLL
调用的时候从程序里传了一个ADO连接参数,为什么一个成功,一个却自己会在传过来的参数上加无数的东东?结果调用的时候出错:未发现数据源名称,并且未指定默认的驱动程序?
下面是多出来的部分:(
'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ABC;Use Encryption for Data=False;Tag with column collation when possible=False'这是怎么回事?????????????

解决方案 »

  1.   

    TShowAbcdEnter = function (AHandle: THandle;PassAdoc:String;PassUser:String): BOOL; StdCall;var
     LibHandle: THandle;
     ShowAbcdEnter: TShowAbcdEnter;
    begin
      LibHandle := LoadLibrary('Dll\AbcdEnterDll.dll');
      try
        if LibHandle = 0 then
          raise EDLLLoadError.Create('无法成功装入资源文件,请检查');
        @ShowAbcdEnter := GetProcAddress(LibHandle,'ShowAbcdEnter');
        if not (@ShowAbcdEnter = nil) then
          Begin
            ShowAbcdEnter(Application.Handle,AaaForm.Adocca,AaaForm.SyUser);
          End
        else
          RaiseLastWin32Error;
      finally
        FreeLibrary(LibHandle);
      end;uses
      ShareMem,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,ActiveX, StdCtrls, ExtCtrls, Buttons, ComCtrls,Jpeg, DB, ADODB, ExtDlgs;
    function ShowAbcdEnter(AHandle: THandle; PassAdoc: String; PassUser: String):BOOL; StdCall;
    var
     AbcdEnterForm : TAbcdEnterForm;
    begin
     Application.Handle := AHandle;
     AbcdEnterForm := TAbcdEnterForm.Create(Application);
     try
       AbcdEnterForm.Adoc.Connected:=False;
       AbcdEnterForm.ADOC.ConnectionString:=PassAdoc;
       AbcdEnterForm.ADOC.Connected:=True;
       AbcdEnterForm.Edit2.Text:= PassUser;
       AbcdEnterForm.ShowModal;
       Result := False;
     finally
       AbcdEnterForm.Free;
     end;
    End;
      

  2.   

    我不是说了,我把另一个正常泊DLL调用复制到这边来,改了名字,就不行了,而另一个DLL正常得很:(
      

  3.   

    再次自己搞定:)
    rwdx(任我独行之浪迹天涯)便宜你了:)
    以后我的问题要多多支持哦:)