C ++ regsvr在静态const声明

时间:2016-08-17 17:46:04

标签: c++11

我创建了一个标题来存储我的整个项目中使用的一堆常用常量。它们看起来像这样:

static const double MY_CONST = FOO();

问题是regsvr卡在我的新文件中。在调试到regsvr之后,它似乎陷入了这条线。在杀死regsvr进程后,我可以运行该程序并逐步完成它。然而,这显然是一个问题,因为它必须在交付时成功注册。我宁愿在每个文件中都没有一堆static const double定义。有办法解决这个问题吗?我有一个想法是#define方法,它是一个返回static const double

的lambda

#define MY_CONST (double)[]({ static const double test = FOO(); return test; })

然而我似乎无法让它发挥作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我调试到了regsvr32,结果证明任何需要登录的功能都是'上下文,因此DLL将在注册时冻结。解决方法是将我的常量指定为预处理程序指令。

答案: #define MY_CONST FOO()