如何开发窗口的DLL,而不需要分发BPL(100分)

  • 主题发起人 主题发起人 蓝叶菱
  • 开始时间 开始时间

蓝叶菱

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近做了一个含有窗口的DLL。但是在发布的时候,必须发布VCL.BPL和RTLD7.BPL才能使用。怎么回事????(含有DELPHI7的机子测试不出来)<br>能不能就是DLL本身呢。以下是源代码。<br>library HttpUpdater;<br>uses<br>&nbsp; SysUtils,<br>&nbsp; Classes,<br>&nbsp; uFrmHttpUpdater in 'uFrmHttpUpdater.pas' {FrmHttp_Updater},<br>&nbsp; uDM in 'uDM.pas' {DM: TDataModule},<br>&nbsp; CGlobal in '../../Project/Common/cGlobal.pas';<br><br>{$R *.res}<br>function PShowHttpUpdater(AppHandle:integer;key:pchar):integer;stdcall;export;<br>begin<br>&nbsp; Result:=ShowHttpUpdater(AppHandle,StrPas(key));<br>end;<br>////////////////////////////////////////////////<br>exports<br>&nbsp; PShowHttpUpdater;<br>begin<br>end.<br><br>function ShowHttpUpdater(AppHandle:integer;key:string):integer; stdcall; export;<br>var<br>&nbsp; FrmHttp_Updater: TFrmHttp_Updater;<br><br>implementation<br><br>uses cGlobal, uDM;<br><br>{$R *.dfm}<br>function ShowHttpUpdater(AppHandle:Integer;key:string):integer;stdcall;export;<br>begin<br>&nbsp; Result:=0;<br>&nbsp; //if LowerCase(key)='westsky' then<br>&nbsp; Application.Handle:=AppHandle;<br>&nbsp; DM:=TDM.Create(Application);<br>&nbsp; FrmHttp_Updater:=TFrmHttp_Updater.Create(Application);<br>&nbsp; try<br>&nbsp; Result:=FrmHttp_Updater.ShowModal;<br>&nbsp; finally<br>&nbsp; &nbsp; FrmHttp_Updater.Free;<br>&nbsp; &nbsp; DM.Free;<br>&nbsp; end;<br>end;<br><br>调用部分:<br>function PShowHttpUpdater(AppHandle:integer;key:pchar):integer;stdcall;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;external 'HttpUpdater.dll';
 
Build with runtime package了?
 
当然没有。。。
 
如果你没有 Build with runtime package,那就不需要,而且,你showmodal,问题不大的,不用build
 
事实确实如此,我也很郁闷。
 
蓝蓝的问题,帮顶,嘿嘿。
 
确实是很奇怪的<br>你的delphi环境也许有问题<br>可以试试删除工程文件<br>重建后rebuild all
 
把上面的代码 建立一个工程重新敲一遍,代码是没有问题的
 
问题没有解决,不知道那位帮我试验。是不是和建立的TDATAMODUALE有关,那位帮我实践一下。
 
是不是用了ShareMem?
 
你可以测试一下TDATAMODUALE动态创建看看
 
后退
顶部