【发布时间】:2017-11-20 22:55:33
【问题描述】:
如何将此函数 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';
【问题讨论】:
-
不起作用具体是什么意思?我们无法从这里看到您的屏幕。 具体在什么方面不起作用?
-
您似乎对
external和exports感到困惑。 -
另外,您使用的是什么版本的 Delphi?
ExecuteFile()将WideString(为什么?)作为输入,因此您应该使用PWideChar调用ShellExecuteW()来匹配。ShellExecute()不映射到ShellExecuteW(),PChar不映射到PWideChar,除非您使用的是 Delphi 2009+。
标签: delphi dll shellexecute