在我的C++ dll应用程序中我想定义一个变量字节,它的值将在随机值的dll init中初始化,然后它将在dll中保持相同的值。C++ - 静态变量
- 这个变量的定义是什么?
- 我应该在哪里开始它的代码(这里是图书馆的INIT)
感谢。
在我的C++ dll应用程序中我想定义一个变量字节,它的值将在随机值的dll init中初始化,然后它将在dll中保持相同的值。C++ - 静态变量
感谢。
静态类成员(可从任何地方访问)或文件范围静态或匿名命名空间成员(可从该编译单元访问)。
类的静态成员:
在.H:
class Foo {
//...
static char random_byte;
//...
};
中的.cpp:
char Foo::random_byte = init_random_byte();
文件范围的静态:
static char random_byte = init_random_byte();
namespace {
//...
char random_byte = init_random_byte();
//...
}
在C++中的初始化可以是任意的表达和运行时将确保前main()
函数来运行它;在加载共享库的情况下。请记住,这些初始化表达式按编译单元(单个.cpp)中的外观顺序调用,但是从不同编译单元进行初始化将以随机顺序运行,因此请确保它们不依赖于对方。它们可以依赖于初始化为已经初始化的常量的变量。
它同样作为一个正常的全局变量的定义。
DllMain中:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682583(v=vs.85).aspx
顺便说一句,我建议你使用一个函数返回它的静态变量而不是全局变量。