ShellExection 的导出函数到 DLL delphi

安德烈

如何将此函数 ExecuteFile 从 ShellExecute 导出到 DLL。如果我通过 DLL 调用它不起作用。但是,如果我直接在项目中使用 ShellExecution 就可以了

procedure ExecuteFile(FileName:WideString);stdcall;
begin
  ShellExecute(0,nil,PChar(FileName),nil,nil,SW_NORMAL);
end;

procedure ExecuteFile(FileName:WideString);stdcall; external 'my.dll';
雷米勒博

您需要两个单独的项目,一个用于 DLL 本身,另一个用于使用 DLL 的项目。

在 DLL 项目中,您使用exports,例如:

library my;

uses
  Shellapi;

{$R *.res}

procedure ExecuteFile(FileName: WideString); stdcall;
begin
  ShellExecuteW(0, nil, PWideChar(FileName), nil, nil, SW_NORMAL);
end;

exports
  ExecuteFile;

begin
end.

然后,在消费项目中,您使用external声明从 DLL 中导入函数,例如:

procedure ExecuteFile(FileName: WideString); stdcall; external 'my.dll';

然后项目可以ExecuteFile()像任何其他函数一样调用,例如:

ExecuteFile('filename');

只要确保导出的 DLL 是:

  1. 位于操作系统搜索路径的某处,最好与消费应用程序位于同一文件夹中。

  2. 编译为使用与消费项目相同的位数(32 位或 64 位)。

否则,它将无法正确加载。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章