我目前在我的dll文件中使用以下代码:
typedef boost::function<void(int)> Function_Callback_type;
#pragma data_seg(".SHARED")
int common = 0 ;
Function_Callback_type funct_callback;
#pragma data_seg()
#pragma comment(linker, "/section:.SHARED,RWS")
现在我想为funct_callback
分配一个值。我读到如果在dll文件的共享数据段中保留了某些内容,则需要对其进行初始化。我的问题是:如何将funct_callback
初始化为空?
答案 0 :(得分:1)
我的问题是如何将funct_callback初始化为空?
如果您的意思是“无功能”或“无内容”:不要做任何事情,默认构造函数会自动调用。
如果要分配一个不起作用的空函数,请使用lamda
Function_Callback_type funct_callback = [] (int) {};
或者自己定义一个空函数并指定它。 (或者带有空函数调用操作符的functor类,并指定该类类型的临时类)