c++ - "extern PACKAGE TMyForm * MyForm"是什么意思

标签 c++ c++builder

在 C++Builder XE2 中,IDE 会将这行代码放在与 TMyForm 关联的头文件中,紧跟在 TMyForm 类之后。我确信这与所有属性 TMyForm 都在 MyForm.dfm 中定义并且需要以某种方式链接到可执行文件这一事实有关,但我在文档或在线上找不到对它的任何引用。谷歌搜索“extern PACKAGE”只会产生大量包含该短语的代码示例。

奇怪的是,注释掉好像没有任何作用。我什至删除了 .res 文件并进行了重建,没有它表格也能正常工作。这似乎否定了我上面的假设。

最佳答案

extern TMyForm *MyForm 用于声明一个全局变量(它实际上驻留在您的 Form 的 .cpp 文件中)。如果该变量配置为在应用程序启动时自动加载,或者如果您在自己的代码中手动分配它,则此变量在运行时指向您的 TForm 对象。

PACKAGE 是一个扩展为 __declspec(package) 的宏,如果您选择在包内使用它,它会将类标记为可在包中编译。

关于c++ - "extern PACKAGE TMyForm * MyForm"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16347137/

相关文章:

c++ - 使用目录中的文件名填充数据库

c++ - 如何在 C++ Builder 中显示更长时间的工具提示?

c# - 使用 WinRT 的 Windows.Graphics.Capture 应用像素着色器

c++ - 指针位移?

c++ - std::function 创建临时文件时内存访问错误

com - 了解 C++Builder xxx_TLB.h 文件

C++:使用owl重新编译旧代码

c++ - bcc32 和 bcc32c 对象生命周期的区别

c++ - 在 C++ 中使用大数组

c++ - 重载新建和删除与自定义分配器