我有三个 *.h 文件:
啊:
<some types>
extern sometype1 somevar1;
乙:
<some types>
extern sometype2 somevar2;
频道:
<some types>
extern sometype3 somevar3;
我有 Dc 文件:
#include "A.h"
#include "B.h"
#include "C.h"
int freethemall()
{
TheFunctionFromAhFileForFreeingTheSomevar1Resources();
TheFunctionFromBhFileForFreeingTheSomevar2Resources();
TheFunctionFromChFileForFreeingTheSomevar3Resources();
}
这个项目是某种框架。
有时我不需要所有模块——例如 A、B 或 C,我只需要 A 和 B 模块。但是我的框架初始化的结构如下:
#include "A.h"
#include "B.h"
<Frameworkname>Init();
<do some code here>
<Frameworkname>Free();
因此,从每个模块调用所有 Free 函数而不是仅调用一个 ...Free() 函数是非常非常不舒服的:
#include "A.h"
#include "B.h"
<Frameworkname>Init();
<do some code here>
<Frameworkname><modulename1>Free();
<Frameworkname><modulename2>Free();
..
<Frameworkname><modulenameN>Free();
在这种情况下,N 只有 2,但我有大约 20 个模块,因此将它们全部计算在内对程序员不友好。
如何更改 freethemall() 函数以仅调用我使用和包含的模块的析构函数?请注意,Dh 包含该功能,并且有很多模块包含 Dh
PS 如果需要,我可以在每个其他模块中包含 Dh 模块。
作为解决它的另一种方法,我需要一个在模块完成之前调用的函数,就像在最后的 Delphi 语言中一样:
Unit ...
Finalization
Callme;
End.
无需从 freethemall() 调用它,但它是解决此问题的某种线索。
谢谢你的任何建议。