在多个名称下导出相同的DLL函数

时间:2013-05-12 11:18:58

标签: delphi winapi dll delphi-7 fastmm

我在我的DLL中创建了一些函数,如下所示:

procedure DoThis(A: PChar): Boolean; stdcall;
begin
f := TFileStreamCreate(A, fmCreate);
f.read()
f.free;
end;

然后我将它以2个名字输出:

export
  DoThis,
  DoThis name 'DoThat';

在大多数情况下,这种“重命名”有效。但至少在一种情况下,重命名的函数“DoThat”不会从真实文件中读取数据,而是从空白中读取数据。如果我在同一个文件上调用DoThis,它的效果很好。 由于FastMM4(将代码转换为常规控制台应用程序)

,我删除了所有内存泄漏

所以问题是:

这种“重命名”不是合法的事吗?

如果它是合法的 - 我可以使用FastMM4调试DLL而不将其更改为控制台应用程序吗?

1 个答案:

答案 0 :(得分:3)

您在问题中描述的内容与现实不符。

  

这种“重命名”不是一件合法的事情吗?

以多个名称导出相同的功能是完全合法的。你描述的问题不会发生。

  

我可以使用FastMM4调试DLL而无需更改   它进入控制台应用程序?

是的,你可以。在“运行参数”对话框中指定主机应用程序,您可以调试DLL。