【发布时间】:2015-08-23 19:17:38
【问题描述】:
我想用 C++ 创建一个模块系统。以下是我的程序,没有问题。
void First_Modules()
{
// Anything ...
}
void Second_Modules()
{
// Anything ...
}
typedef void(*Func) ();
struct All_Modules
{
char *Name;
Func This_Function;
};
struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }, {"Load_Modules_2", Second_Modules }};
我的问题是我想在不使用的情况下将模块信息发送到 Load_All_Functions
struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }, {"Load_Modules_2", Second_Modules }};
我想要这样的东西:
struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }};
struct All_Modules Load_All_Functions[] = { {"Load_Modules_2", Second_Modules }};
(拆分每个集合进程)。但是当我尝试运行它时,我看到了这个错误
'Loads': redefinition; different basic types
我该怎么办?我不想用
struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }, {"Load_Modules_2", Second_Modules }};
我想设置每个完整的单独像
struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }};
struct All_Modules Load_All_Functions[] = { {"Load_Modules_2", Second_Modules }};
我该怎么办?我希望每个模块都有函数名称并在程序的每个位置加载它。
【问题讨论】:
-
这个问题的措辞非常难以阅读和“不受欢迎”。如果您希望得到正确的答案,请整理您的想法,然后提出问题。
-
根本问题是什么?你不想把所有的东西都放在一条线上,你不想一次做所有的事情,或者你事先不知道函数的数量?还是别的什么?
-
目标是一次加载多个模块吗?
-
类似的东西.....我想要每个模块的函数名并在程序的每个位置加载它