gpt4 book ai didi

c++ - 如何制作不依赖 msvc dll 的 win32 应用程序?

转载 作者:行者123 更新时间:2023-11-28 01:53:48 24 4
gpt4 key购买 nike

我想使用 Visual Studio 编写一个不依赖 msvc dll 的 c++ win32 应用程序。

我尝试了 /NODEFAULTLIB 选项,但之后我得到了一个 Unresolved external 错误,即使是“空”程序,因为没有库。我该如何纠正这个问题?我要链接哪些库?

这是我尝试使用 /NODEFAULTLIB 选项编译但失败的简单代码。

#include <Windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow) {

}

最佳答案

#undef UNICODE
#define UNICODE
#include <windows.h>

void startup()
{
MessageBox( 0, L"Click the OK button, please.", L"Hi!", MB_SETFOREGROUND );
ExitProcess( 0 );
}
[C:\my\forums\so\279]> cl minimal.cpp /link /nodefaultlib /entry:startup /subsystem:console kernel32.lib user32.libminimal.cpp[C:\my\forums\so\279]> dir Volume in drive C is OS Volume Serial Number is 58BC-07CA Directory of C:\my\forums\so\27928.01.2017  21:43    <DIR>          .28.01.2017  21:43    <DIR>          ..28.01.2017  21:43               215 minimal.cpp28.01.2017  21:43             2 560 minimal.exe28.01.2017  21:43               860 minimal.obj               3 File(s)          3 635 bytes               2 Dir(s)  274 278 531 072 bytes free[C:\my\forums\so\279]> _

cl 是 Visual C++ 编译器。我的默认选项(通过 CL 环境变量)是 /nologo/EHsc/GR/W4/FI "iso646.h",但我相信只有异常处理选项会影响这里的任何东西,如果这一切。 user32.lib 库已链接,因为我使用了 MessageBox 函数。


请注意,运行时库负责处理部分 C++ 核心语言基础结构。这包括命名空间范围变量的动态初始化,并且根据编译器的不同,它可能包括一些对异常的支持。我不知道有关 Visual C++ 在这方面的详细信息,但有必要非常非常小心:一个人在工具的基本假设不成立的情况下运行。

关于c++ - 如何制作不依赖 msvc dll 的 win32 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41914013/

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