.lib中的Main函数作为启动函数
Main function in .lib as startup function?
我想这样做:
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:未解析的外部符号main在函数__tmainCRTStartup
中引用你知道我做错了什么吗?
您正在将Windows程序编译为控制台程序。在这种情况下,期望的入口点是main
,而不是WinMain
。后者用于GUI程序。您的程序有一个名为WinMain
的函数和一个名为ClientMain
的函数,但没有main
。
如果你想让你的库提供main
函数,这是可以的,但你必须确保它真正的命名为main
,因为这是链接器将寻找的
相关文章:
- 使用 std::string () const 函数启动线程或未来
- C++关于指针和使用函数将它们启动到堆的行为究竟是什么?
- 启动类函数作为失去引用的线程
- 如何启动地图的复制构造函数?
- 在没有复制构造函数的对象的成员函数中启动 std::thread
- 稍后在构造函数中重新启动异常指令删除此指令
- 使用 std::thread & std::bind 在成员函数中启动线程
- SetTimer (带有回调函数)是否通过启动新线程来工作?
- std::thread从函数启动,无需等待线程完成
- 什么是递归启动函数
- 在单独的线程中使用参数启动成员函数
- 无法异步启动带有对象参数的函数
- c++ 在派生函数中启动 OMP 线程
- 如何在类构造函数内部对同一类的成员函数启动pthread
- 通过 std::async 启动的函数引发的异常会发生什么情况
- 将错误作为 Keys::KEYS 必须由构造函数启动
- 为什么当我尝试对使用 New 函数启动的对象调用删除函数时出现范围错误?
- 通过引用向量传递的线程函数启动缓慢
- 如何从Windows Service主函数启动c++本地应用程序(应用程序与控制台交互)?
- 结束使用 ShellExecute 函数启动的C++程序的最佳方法是什么?