如何在 Visual Studio 中正确设置 exe 的入口点?

2024-01-25

我已将入口点设置为 WinMain,但是当我运行该应用程序时,它启动但不显示,然后我必须使用任务管理器将其关闭。这是 WinMain() 之前的代码:

#include <Windows.h>

// forward declarations
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); 

// The entry point into a windows program
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int windowStyle )
{
....

我没有 C++ 经验,我不知道这在做什么,除了让我的 exe 更小,这就是我想要实现的目标。

编辑:我想做的是创建一个非常小的窗口exe来了解演示编码器的工作原理。因此,我正在考虑创建一个小型 c++ 窗口应用程序,它提供一个窗口句柄,我可以将 SlimDX 附加到该窗口句柄(如果我可以将最终的 c++ dll 静态链接到 C# 应用程序,但我还没有)我有我的 BasicWindow .exe 减少到 6,656 字节。所以我正在尝试任何我能找到的东西来将尺寸减小到

[2012.Jan.10] 嗯,我通过重建 minicrt 取得了一些成功(可从http://www.benshoof.org/blog/small-programs/ http://www.benshoof.org/blog/small-programs/)在 VS2010 下并将其添加为附加依赖项。我无法按照建议忽略所有默认库,但我现在有一个 exe 大小为 4,096 字节的窗口应用程序。我想说这是一些重大的成功。我现在就在攻击距离之内。从现在开始的每一次减少,都为 SlimDX 带来更多空间。我很高兴考虑到我写过的唯一的 C++ 应用程序是控制台应用程序和一个基本窗口:) 我很幸运我知道!


典型的应用程序不应该搞乱Entry point链接器的设置。入口点应设置在标准运行时库(即wWinMainCRTStartup对于 Windows 子系统的 unicode 应用程序)。该函数执行诸如正确初始化 CRT 和创建全局对象之类的操作。通过将入口点重新路由到您的WinMain你会得到未定义的行为,除非你确切地知道你在做什么并以某种方式在你自己的中实现 CRT 初始化WinMain。在我看来,由此产生的尺寸减小可以忽略不计,整个事件几乎不值得冒险。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Visual Studio 中正确设置 exe 的入口点? 的相关文章

随机推荐