感觉我的帖子跟潜水艇一样沉的特快。。
library Project2;
uses
  SysUtils,
  Classes,
  Dialogs,
  Forms,
  Controls,
  ShlObj,
  data in 'D:\检验台项目\data.pas',
  GetDataRoad in 'D:\检验台项目\GetDataRoad.pas';function CCMToSQL(var str:string):boolean;stdcall; 
begin
 DataModule1.CCMQuery.DatabaseName:='D:\检验台项目\DB\CCM_tb';
 showmessage(str);
 showmessage(DataModule1.CCMQuery.DatabaseName);
 end;exports
CCMToSQL;begin
Application.CreateForm(TDataModule1, DataModule1);//这句不加运行就错误了,加了可以正常运行! 
end.
DataModule1另一个project中,然后想把DLL加进去!

解决方案 »

  1.   

    library Project2; 
    uses 
      SysUtils, 
      Classes, 
      Dialogs, 
      Forms, 
      Controls, 
      ShlObj, 
      data in 'D:\检验台项目\data.pas', 
      GetDataRoad in 'D:\检验台项目\GetDataRoad.pas',
      ..                                          //加TDataModule1那个单元function CCMToSQL(var str:string,DM: TDataModule1):boolean;stdcall; 
    begin 
    DM.CCMQuery.DatabaseName:='D:\检验台项目\DB\CCM_tb'; 
    showmessage(str); 
    showmessage(DM.CCMQuery.DatabaseName); 
    end; exports 
    CCMToSQL; begin 
    end. 试试这样
      

  2.   

    谁给个DLL应用的例子,比如DLL用来把FORM中的Edit中的数据写入文本或数据库,就结贴!
      

  3.   

    动态载入DLL,获取用户名
    运行一下看看。。Tgetn=function:pchar;stdcall;
    var
      Form1: TForm1;
    implementationprocedure TForm1.SpeedButton1Click(Sender: TObject);
    var
      onehandle:Thandle;
      fun:Tgetn;
    begin
      onehandle:=loadlibrary('getname.dll');
      try
        if onehandle<>0 then
          @fun:=getprocaddress(onehandle,'getnames');
        if not(@fun=nil)then
          label1.Caption:=fun ;
      finally
        freelibrary(onehandle);
      end;
    end;