gpt4 book ai didi

c++ - 将 WinMain 参数传递给另一个函数

转载 作者:行者123 更新时间:2023-11-28 03:44:12 25 4
gpt4 key购买 nike

我正在 Windows 上开发应用程序,但我也想支持其他平台(我编写的大部分代码都是平台无关的)。不管怎样,我想为了开发的缘故我想让事情简单化(也许我在这种方法上太天真了)所以我的 main.cpp 看起来有点像下面这样:

#ifdef _WIN32
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR cmdLine,
int cmdShow)
#else
int main(int argc, char* argv[])
#endif
{
/* If the application is launched under Windows */
#ifdef _WIN32
win_init wi;
return wi.init(hInstance, hPrevInstance, cmdLine, cmdShow);
#endif

/* If the application is launched under OS X */
#ifdef __APPLE__
osx_init oi;
return oi.init();
#endif
}

所以我的想法是,如果应用程序在 Windows 下启动,将调用 WinMain,然后我使用提供的 WinMain 参数调用 wi.init 来完成剩下的工作。

我以为我很聪明,但是当我编译的时候我得到一个错误:

MSVCRTD.lib(crtexe.obj):错误 LNK2019:函数 ___tmainCRTStartup 中引用了未解析的外部符号 _main

我研究过这个错误,当人们忘记了一个主要方法或试图将 DLL 编译为 .exe 时,它​​似乎会发生

所以对于我的问题;我很好奇为什么会这样,你建议我做什么而不是这种方法?

最佳答案

您想使用 /SUBSYSTEM:WINDOWS 链接器选项以便使用 WinMain

关于c++ - 将 WinMain 参数传递给另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8129916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com