函数原型
function
WinExec
external
kernel32
name
'WinExec'
function
WinExec(lpCmdLine:
LPCSTR
uCmdShow:
UINT):
UINT
stdcall
第一个参数为你要运行程序的全路径!
第二个参数是控制程序主窗口的显示方式
第二个参数可能的取值为
:
SW_HIDE
//程序启动后隐藏主窗口
SW_MAXIMIZE
//最大化运兆没乎行
SW_MINIMIZE
//最察毕小化运行
SW_RESTORE
//将最大化或最小化的窗口恢复正常
SW_SHOW
//以当前位置和大小显示主窗口
SW_SHOWMAXIMIZED
//激族悉活窗口并以最大化运行
SW_SHOWMINIMIZED
//激活窗口并以最小化运行
SW_SHOWMINNOACTIVE
//最小化运行,但不激活
SW_SHOWNOACTIVATE
//以上一次的窗口大小运行,但不激活
SW_SHOWNORMAL
//普通方式,一般运行时采用这个
一般情况下,第二个参数取SW_SHOWNORMAL即可,这样就是无参数
//创建DLLlibrary test
uses
dialogs,
SysUtils,
Classes
{$R *.res}
function My_Max(a,b:integer):integerstdcall
begin
if (a >b) then
result := a
else
result := b
end
exports My_Max
begin
end.
//调用开始
unit Unit11
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,stdctrls
type
TForm1 = class(TForm)
Button1: TButton
procedure Button1Click(Sender: TObject)
private
{ Private declarations }
public
{ Public declarations }
end
var
Form1: TForm1
implementation
{$R *.dfm}
function My_Max(a,b:integer):integerstdcall
external 'E:\mypro\1019(3)\test.dll'
procedure TForm1.Button1Click(Sender: TObject)
begin
showmessage(inttostr(my_max(25,10)))
end
end.
调用时注意DLL里的函数是区返陵陪别大小写的,这点和DELPHI里的函数不太一样,如果调用的和DLL里的不一致,汪拆会报一个漏蠢无法定位程序输入点的错误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)