如何在delphi中了解dll的调用者应用程序

时间:2015-10-09 02:28:04

标签: delphi

我有一个可以从不同的exe应用程序调用的dll(dll和exe用Delphi 5编写)。 是否有可能在dll中知道从哪个应用程序调用它? 换句话说,我们说我有App1.exe,App2.exe和MyDll.dll。 App1.exe称为MyDll.exe。我想在dll里面知道它是从App1调用的,而不是从App2调用的。

1 个答案:

答案 0 :(得分:2)

如果您调用Windows API函数GetModuleFileName()传递NULL(0)作为模块句柄(第一个参数),那么这将返回进程的文件名,即可执行文件:

function GetProcessFileName: String;
var
  buf: array[0..MAX_PATH-1] of Char;
begin
  GetModuleFileName(0, @buf, Length(buf));
  result := buf;
end;

注意:正如Raymond Chen总是说的那样,示例程序很少或没有错误检查! :)

有关使用此API的更多信息,请参阅文档并相应地使用。

相关问题