delphiʵÏÖµ÷ÓÃdllÖеĴ°Ìå ´úÂë
н¨Ò»¸ödLL¹¤³Ì,н¨Ò»¸ö´°Ìå Fr_bb80 ,ÎÒÃÇÏÈÔÚËüµÄµ¥ÔªÀï¼ÓÈëÏÂÃæÒ»¸öº¯Êý:
function Report(Title:Pchar):Boolean ;stdcall;
begin
if Fr_bb80=nil then
begin
Fr_bb80:=TFr_bb80.Create(application);
Fr_bb80.Caption:= Title;
try
Fr_bb80.ShowModal;
Result:=true;
finally
Fr_bb80.Free;
end;
end;
Result:=false;
end;
ÔÙÔÚ´Ëdll¹¤³ÌÎļþ(*dpr)ÎļþÖмÓÈë
exports Report; //¼ÓÈëÕâ¸öÖ®ºó,ÍâÃæ¾Í¿ÉÒÔµ÷ÓÃÕâ¸öº¯ÊýÁË.
н¨Ò»¸ö¹¤³Ì,ÔÚд°ÌåÖмÓÒ»¸ö°´Å¥,ÏÂÃæ¾ÍÊÇÕâ¸ö°´Å¥µÄÍêÈ«´úÂë:
type
TLoadDLL2 = function(Title:Pchar):Boolean; stdcall; //Õâ¸öÊDZØÐëµÄ,ºÃÏñ½Ð»Øµ÷º¯Êý??,ËüµÄ¶¨ÒåÓëdllÖй«¿ªµÄº¯ÊýÒªÍêȫһÖÂ
var
FLoad: TLoadDLL2; //½«TLoadDLL2 ʵÀý»¯
l:THandle;
begin
l:=LoadLibrary('CW.dll'); //¶¯Ì¬µ÷ÓøղÅÄǸödllÎļþ
// ¸øFLoadº¯Êý¸³Öµ,½«Ö¸ÕëÖ¸Ïò GetProcAddress(l, 'Report') ;"Report" ÊÇÕâ¸ödll¹«¿ªµÄº¯ÊýÃû
FLoad := TLoadDLL2(GetProcAddress(l, 'Report'));
if Assigned(FLoad) then //ÅжÏÊÇ·ñÕÒµ½Õâ¸ö¹«¿ªµÄº¯Êý
FLoad('×Ô¶¨Òå´°¿ÚµÄ±êÌâ'); //Ö´Ðк¯Êý,×¢Ò⺯ÊýµÄ²ÎÊýµ½Õâʱºò²Å¿ªÊ¼¸³Öµ
FreeLibrary(l); //ÊÍ·Å×ÊÔ´
ÒÔÉÏ´úÂëÔÚdelphi7.0ͨ¹ý!
Ïà¹ØÎĵµ£º
ÖØÔØ CreateParams ·½·¨¼´¿É
ÉùÃ÷£º
procedure CreateParams(var Params: TCreateParams);override;
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := 0;
end; ......
1£¬¹æ·¶¼ò½é
¡¡¡¡±¾¹æ·¶Ö÷Òª¹æ¶¨DelphiÔ´³ÌÐòÔÚÊéд¹ý³ÌÖÐËùÓ¦×ñѵĹæÔò¼°×¢ÒâÊÂÏî¡£±àд¸Ã¹æ·¶µÄÄ¿µÄÊÇʹ¹«Ë¾Èí¼þ¿ª·¢ÈËÔ±µÄÔ´´úÂëÊéдϰ¹ß±£³ÖÒ»Ö¡£ÕâÑù×ö¿ÉÒÔʹÿһ¸ö×éÔ±¶¼¿ÉÒÔÀí½âÆäËü×éÔ±µÄ´úÂ룬ÒÔ±ãÓÚÔ´´úÂëµÄ¶þ´Î¿ª·¢¼ÇÒäϵͳµÄά»¤¡£
2£¬Ò»°ã¸ñʽ¹æ·¶
2.1 Ëõ½ø
¡¡¡¡Ëõ½ø¾ÍÊÇÔÚµ±Ô´³ÌÐòµÄ¼¶¸Ä±äʱΪÔö¼ ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button ......
±¾ÊéÈÚºÏÁËÔÚWindowsÏÂÀûÓÃDelphi 7.0¿ª·¢Ó¦ÓóÌÐòµÄÀíÂÛºÍʵ¼ù£¬È«Ãæ¶øÉîÈëµØ½éÉÜÁËÀûÓÃDelphi 7.0¿ª·¢Ó¦ÓóÌÐòµÄ³£Ó÷½·¨ºÍ¼¼ÇÉ¡£ÄÚÈݰüÀ¨Óû§½çÃæÉè¼Æ¡¢Í¼ÐÎͼÏñ±à³Ì¡¢Îļþ¹ÜÀí¡¢¶àýÌå¼¼Êõ¡¢ÏµÍ³¿ØÖÆ¡¢ÍøÂçºÍÊý¾Ý¿â±à³ÌÒÔ¼°ÓÎÏ·ÖÆ×÷µÈÄÚÈÝ¡£ ÏêϸÔĶÁÍ»ÆÆDelphi 7.0±à³ÌʵÀýÎåÊ®½²£¬À´×ÔITµç×ÓͼÊé¹Ý ......