http://expert.csdn.net/Expert/topic/1332/1332780.xml?temp=.767666请大家指点

解决方案 »

  1.   

    谢谢,我在dll里有个对话框,对dbgrid进行操作,您能明白是把,
    然后我在dll里设grid:TDBGrid变量,它要是放在对话框声明里面,无法赋句柄,
    设在外面,也不对.yong grid:=@gridHandle也不对
      

  2.   

    当然可以啦!
    在DLL中
    library Tools;
    uses
      SysUtils,
      Classes,
      windows,
      forms,
      dialogs,
      DBCtrls, 
      Grids, 
      DBGrids, 
      Buttons, 
      Db, 
      DBTables;{$R *.RES}procedure ModiGrid(var vGrid:TGrid); stdcall;
    begin
      dofunction();
    end;Exports
      ModiGrid;
    begin
    end.在调用DLL的主窗口中定义变量
    Type
    TModiGrid = procedure(var vGrid: TGrid); stdcall;并且调用Dll export 的procedure:
    var
      Han: HModule;
      ModiGrid: TModigrid;
    begin
      Han := LoadLibrary("路径+文件名");
      @Modigrid := GetProcAdress(HaN, "ModiGrid");
      if @Modigrid <> nil then
        Modigrid
      else
        RaiseLastWin32Error;
    end;
      

  3.   

    没必要吧,传一个DataSet就不得了了。
      

  4.   

    回上面的两位老兄,我也写了很多这样的小的测试程序,有的通过,有的通不过,估计是vcl底层的问题我还没搞不太明白,我已经这样写过了.但老是出错,而且我主要是设置网格的标题,字体等属性,不是取他的数值.ok?