问题标签 [winmain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2095 浏览

c++ - 静态构建 Windows 应用程序时出错

当我动态链接所有内容时,我有一个可以编译并且工作正常的应用程序,但是当我想要对其进行静态构建时,它不会编译。

在 Visual Studio 2010 中,我设置了“在静态库中使用 MFC”选项。

当我这样做时,我收到此错误:

我尝试将其添加LIBCMT.lib为附加库,但这并没有改变任何东西。

关于如何解决这个问题的任何想法?

0 投票
2 回答
2033 浏览

c++ - 将 WinMain 入口点嵌入到类中?

我想知道,是否可以使用 win32 程序的入口点 - WinMain - 作为类方法?例如;

谢谢!

0 投票
1 回答
958 浏览

winapi - 汇编程序:获取 Win32 的 WinMain 堆栈参数

我需要WinMain使用程序集访问参数,但我似乎无法这样做,尽管我应该知道它们在堆栈中的位置(DWORD 偏移量为 0 到 16,在操作前推送 EBP 时为 0 到 20)。下面有一个示例显示包含程序命令行lpszCmdline的字符串,但它似乎总是包含 0,因此没有显示任何内容。如果我尝试在汇编代码中使用其他参数,则似乎不存在有效的字符串指针和/或程序崩溃,如预期的那样。



但是,如果我使用,GetCommandLine我可以获得一个指向命令行字符串的有效指针,它会显示出来。



第一个代码块的错误在哪里?我需要什么来获取参数,并能够实现我自己的代码来返回一个有效的指针,lpszCmdLine就像返回GetCommandLine其他WinMain参数一样?如果我无法从堆栈中获取命令行指针,那么我可能无法获取其他参数,例如nCmdShow用于其他重要初始化的 。

如果您需要比上面提供的更多的代码,请告诉我。如果它对您有用,我没有使用链接器,而是完全手动生成 EXE(它是否有任何区别WinMain,比如进一步的堆栈参数?),但基本上它只是一个 Windows 自动调用其入口点的程序和上面的将是它包含的程序的 2 个不同选项。

0 投票
1 回答
5705 浏览

windows - 在 Windows XP 中使用 NASM 进行编程

我有以下代码在 Windows XP 32 位 2.09.08 NASM 上组装和运行良好:

根据许多关于 NASM 的教程,asm 文件中需要以下内容:

如您所见,我的 asm 文件中没有它。(它被注释掉了,它只有_start)。那么,当我的汇编程序没有它并且可以工作时,所有这些教程都提到了对全局 _WinMain@16 东西的需求?

这是汇编命令:nasm -f elf test.asm
这是链接命令:ld -o test.exe test.o

0 投票
4 回答
2555 浏览

c++ - winmain@16 错误

我在网上找到了这段代码,我试图编译它,但 gcc 一直告诉我有一个undefined reference to WinMain@16. 我不知道它来自哪里,所以我要发布整个代码。在网上搜索后,我只找到了人们int main()写错的答案,并修复它使其工作。这在此代码中不起作用。

我应该怎么做才能让这段代码运行?

0 投票
3 回答
1616 浏览

c++ - MFC 的 wWinMain 如何在可执行文件中结束?

在 MFC 中,wWinMain定义在appmodul.cpp. 据我所知,这个文件是内置在 mfc90ud.dll 中的。但是,当我运行我的应用程序时,调用堆栈显示MyApplication.exe!wWinMain. 它是如何获取wWinMain导出的函数appmodul.obj并将其放置在我的应用程序中的?

0 投票
2 回答
2173 浏览

c++ - 如果 prevInstance 始终为 NULL,为什么在 WinMain 和 wWinMain 中存在 prevInstance

由于我是初学者,这可能是一个非常基本的问题。我正在启动 DirectX 11,在创建我的第一个应用程序时,使用了 wWinMain,在搜索 WinMain 和 wWinMain 之间的差异时,我遇到了这个参数 prevInstance。

prevInstance 根据 MSDN 始终为空,既然始终为空,那它为什么存在(因为顺理成章地认为创作者不会给出一个无用的参数)。并且(引自书中),

如果您需要一种方法来确定应用程序的先前实例是否已经在运行,文档建议使用 CreateMutex 创建一个唯一命名的互斥锁。尽管将创建互斥锁,但 CreateMutex 函数将返回 ERROR_ALREADY_EXISTS。

什么是互斥锁,以及如何使用它(一个好的链接就足够了)。并且看起来需要一个方法来查找应用程序的另一个实例是否存在,prevInstance 应该有一个指针或对它的引用,显然不是这种情况,因为它是空的。为什么会这样,prevInstance的作用是什么?

0 投票
1 回答
69 浏览

winapi - Winmain 在自动启动中无法显示消息

我有一个win32程序,当手动运行时,它会在WinMain中显示一条消息,但是当我将相同的程序放在注册表(运行)下时,当PC重新启动时,它会自动运行,消息永远不会出现(但程序正常运行)。

任何人都知道为什么手动启动程序(通过单击 exe 文件)和自动启动程序(通过 Windows 注册表)之间存在差异?

谢谢

克莱门特

0 投票
3 回答
1362 浏览

c++ - winmain() 函数 / C++

能否请您向我解释一下一般写在WinMain()函数末尾的这句话的意义:

我习惯于用 Windows 应用程序来结束我的控制台应用程序return 0;是错误的吗?

谢谢你。

0 投票
1 回答
387 浏览

c++ - 隐藏 winmain() 函数

有什么方法可以隐藏WinMain()类中的函数吗?谢谢你。