我想做这样的事情:
library.h
#define main ClientMain
libary.cpp
#define main ClientMain
extern "C" int main (int argc, char *argv[], char *envp[]);
#ifdef WINDOWS
int WINAPI WinMain()
{
// other code here
ClientMain(0, 0, 0);
}
#endif
client.cpp //平台无关代码
#include library.h
int main(int argc, char* argv[]){ // stuff}
然而,我一直收到错误: MSVCRTD.lib(crtexe.obj):错误LNK2019:函数_ _tmainCRTStartup
中未解析的外部符号主要引用知道我做错了吗?
答案 0 :(得分:3)
您正在将Windows程序编译为控制台程序。在这种情况下,预期的入口点实际上是main
,而不是WinMain
。后者用于GUI程序。您的程序有一个名为WinMain
的函数和一个名为ClientMain
的函数,但没有main
。
如果你希望你的库提供main
函数,那很好,但是你必须确保它真正命名为main
,因为这是链接器将要寻找的东西。