内的头部声明函数指针我有一个包含以下一个简单包头:一个命名空间
// system.h
#pragma once
namespace System
{
void Initialize(void);
int (*Main)(int& argc, char** argv);
void Shutdown(void);
}
在“system.cpp”,初始化()被限定为使得所述函数指针主(INT, char **)被设置为另一个主函数,由预处理器确定将定义的任何系统将被编译(Windows,现在)。
在程序的main.cpp中,它调用上述三种功能...
所以,当这编译,我得到一个链接错误(system.cpp)抱怨系统:主(INT, char **)已经在main.cpp中定义。这是怎么回事?
〜
// system.cpp
#include "..\system.h"
#ifdef _WINDOWS
#include "windows.h"
#else
#define SYSTEM_UNKNOWN 1
#endif
void System::Initialize(void)
{
#ifdef WINDOWS
System::Main = &Windows::Main;
#else if SYSTEM_UNKNOWN
System::Main = NULL;
#endif
}
void System::Shutdown(void)
{
System::Main = NULL;
}
我加入了 '的extern' 关键字的头......而仍然没有去。
试过'extern'...不行:/我得到未解决的外部符号错误......这很奇怪。由于它是在system.cpp中定义的! – user3120381
好的!显然我没有初始化函数中的定义......这是不愉快的。 – user3120381