【发布时间】:2013-05-12 11:18:58
【问题描述】:
我在我的 DLL 中创建了一些函数,如下所示:
procedure DoThis(A: PChar): Boolean; stdcall;
begin
f := TFileStreamCreate(A, fmCreate);
f.read()
f.free;
end;
然后我以 2 个名称导出它:
export
DoThis,
DoThis name 'DoThat';
在大多数情况下,这种“重命名”是有效的。但至少在一种情况下,重命名的函数“DoThat”不会从真实文件中读取数据,而是从 void 中读取数据。如果我在同一个文件上调用 DoThis - 它效果很好。 借助 FastMM4,我消除了所有内存泄漏(将代码转换为常规控制台应用程序)
所以问题是:
这种“重命名”不合法吗?
如果它是合法的 - 我可以使用 FastMM4 调试 DLL 而不将其更改为控制台应用程序吗?
【问题讨论】:
-
除非您证明,否则您所描述的不会发生。不要粘贴假代码。粘贴一个真实的程序,一个完整的程序。假代码是在浪费大家的时间。
-
我不能在这里粘贴超过 200 kB 的代码。我不是在寻找问题的解决方案,而只是寻找 2 个问题的答案。
-
您发布的是代码的缩减复制。您只需要 20-30 行。进行缩减复制的行为会让你相信问题出在其他地方
标签: delphi winapi dll delphi-7 fastmm