在Delphi中编译/链接未使用的函数/过程

时间:2013-02-05 07:14:32

标签: delphi compiler-construction linker delphi-7

我想"提供"我的应用程序中的几个函数/过程甚至变量而没有在我自己的代码中使用它们。编译器是否自动忽略未使用的变量和函数,还是链接器?我怎么能改变呢?我已经尝试取消选中CodeGeneration ---> Optimization,但没有运气。

3 个答案:

答案 0 :(得分:5)

如果程序中的某些内容引用了该对象,则链接器无法将其删除。所以你可以像这样利用这个:

procedure StopLinkerRemoval(P: Pointer);
begin
end;

然后在初始化部分,您可以写下:

StopLinkerRemoval(@MyVar);
StopLinkerRemoval(@MyFunction);

您需要做的就是参考该对象。您无需调用该函数,也无需读取/写入变量,只需获取其地址即可。

答案 1 :(得分:4)

让"未使用"或者未在您的应用程序中编译procedures / functions以及privateprotected methods,您应构建一个包并放入dcu个文件进入你的图书馆之路。

publicpublished methods即使未在您的应用程序中引用也会进行编译。

答案 2 :(得分:1)

链接器是忽略未使用变量的链接器。但是,我不确定它是否与程序和功能相同。你无法改变这种变化。