我想"提供"我的应用程序中的几个函数/过程甚至变量而没有在我自己的代码中使用它们。编译器是否自动忽略未使用的变量和函数,还是链接器?我怎么能改变呢?我已经尝试取消选中CodeGeneration ---> Optimization
,但没有运气。
答案 0 :(得分:5)
如果程序中的某些内容引用了该对象,则链接器无法将其删除。所以你可以像这样利用这个:
procedure StopLinkerRemoval(P: Pointer);
begin
end;
然后在初始化部分,您可以写下:
StopLinkerRemoval(@MyVar);
StopLinkerRemoval(@MyFunction);
您需要做的就是参考该对象。您无需调用该函数,也无需读取/写入变量,只需获取其地址即可。
答案 1 :(得分:4)
让"未使用"或者未在您的应用程序中编译procedures
/ functions
以及private
和protected
methods
,您应构建一个包并放入dcu
个文件进入你的图书馆之路。
public
和published
methods
即使未在您的应用程序中引用也会进行编译。
答案 2 :(得分:1)
链接器是忽略未使用变量的链接器。但是,我不确定它是否与程序和功能相同。你无法改变这种变化。