- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用旧的 bcc32 (borland 5.5)(我知道这很旧编译器但不要告诉我我不应该使用它)
我可以使用控制台或 Windows 子系统进行编译。
我不想用 windows 子系统编译,我想要只有 main() 广告的控制台“windows.h”包括(从那里我称我的自己的库打开窗口并处理内部消息泵)
它可以工作,但问题是当我编译时带有控制台子系统的是丑陋的蓝色控制台窗口出现,我不需要那个
所以我想我只需要不需要编译 windows 子系统,没有控制台子系统编译,只是让我的程序以某种原始模式编译(两者都没有控制台创建并且没有 WinMain 入口点 -怎么做?
最佳答案
通常,当您不需要控制台时,您应该选择“GUI”或“Windows”子系统(取决于您的开发环境选择如何调用它)。它控制链接器在 EXE header 中设置的位。您无法在程序开始运行后控制子系统,因为操作系统会读取您的 EXE 文件并在执行程序中的任何代码之前确定要使用的子系统。
使用 Windows 子系统不需要您有任何窗口;它只是在加载程序时告诉操作系统您不需要控制台。它与您是否使用任何 Windows API 无关。这两个子系统都是成熟的 Windows 应用程序,并提供对 Windows API 功能的充分利用。
您可以在 WinMain
中执行与在 main
中相同的所有操作。有 fetching the command line 的功能和 splitting it into separate arguments .
但是,如果您不希望您的主函数被调用 WinMain
,那么您就不能使用 Windows 子系统。子系统的选择还控制链接器将哪一组准备代码放入您的程序中。准备代码是程序的真正入口点所在的位置,它是初始化 C++ 标准库并调用具有命名空间范围的任何对象的构造函数的地方。控制台模式中包含的代码调用main
(或wmain
);为 Windows 子系统调用链接的代码 WinMain
(或 wWinMain
)。如果您使用 Windows 子系统并且没有定义名为 WinMain
的函数,那么您在链接时会出错;链接器将提示一个未定义的函数。 (您不必包含 windows.h 来定义 WinMain
,如果您害怕包含该 header 。)
由于要使用的子系统只是 EXE header 中的一组位,因此您可以在使用 the editbin
program 进行链接后更改它。 .链接时,选择控制台子系统,以便获得控制台准备代码和 main
,然后修改二进制文件以改为使用 Windows 子系统:
link foo.obj /out foo.exe /subsystem:CONSOLEeditbin /subsystem:WINDOWS foo.exe
然后您的程序将在没有控制台的情况下运行。请注意,如果在启动时出现任何问题,准备代码可能会使您的程序崩溃,因为它编写时希望有一个可用于写入的控制台,但它不会在那里。
关于winapi - bcc32 - 没有控制台子系统,也没有 Windows 子系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16133152/
你怎么能管理这样的事情?我尽我最大的努力将子系统设计为可重用,但只有某些特定于站点的东西必须自定义(例如 Account 实体中的字段,或 orm 注释中的 cfc="")。 我曾想过使用 SVN 并
我正在编写 native 模式应用程序(想想: link /subsystem:native )。这意味着我不能使用 kernel32.dll 中的任何内容,这(显然)在 C 运行时库中没有任何意义。
我注意到使用 emscripten,即使是相对较小的 C++ 文件也可以快速转换为相当大的 JavaScript 文件。示例: #include int main(int argc, char**
在恢复模式下运行标准 Windows 7 安装盘时,如果您打开命令行并运行自定义构建的应用程序,您将收到错误“不支持子系统”。我试过与/SUBSYSTEM:CONSOLE、WINDOWS 和 NATI
我有一个生成一些报告并在 GUI 中显示相同内容的 MFC 应用程序。当使用某些命令行参数传递时,我需要将它作为控制台应用程序运行。在控制台模式下,它将在标准输出/错误中生成报告/错误,我应该能够将其
本文讲解 pinctrl 子系统和 gpio 子系统的 API,以及使用示例。 传统的配置 pin 的方式就是直接操作相应的寄存器,但是这种配置方式比较繁琐、而且容易出问题(比如 pin 功能
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 8 年前。
Windows Vista Enterprise 和 Ultimate 的要点功能之一是 Windows 的 Unix 子系统,它允许您编写 posix... 东西?不管怎样,我不喜欢谈论它……有人使
我在 Windows 10 上的 WSL 中使用 Ubuntu,并且我在 WSL 中安装了 git 并定期使用它。我有一个非常烦人的问题,我尝试缓存我的 github 凭据,因此我不必在提交时不断输入
我正在使用旧的 bcc32 (borland 5.5)(我知道这很旧编译器但不要告诉我我不应该使用它) 我可以使用控制台或 Windows 子系统进行编译。 我不想用 windows 子系统编译,我想
设置: 榛子:3.12.3 Spring 启动:2.1.6 Java:1.8 参数:-XX:+UseG1GC Xms7g -Xmx7g 这些正在 Docker 中运行:openjdk:8 它们在专用
我曾经在 Windows 10 的 Linux 子系统上通过 bash 控制台通过 ssh 连接到我的服务器。 我重新安装了 Windows,并将 id_rsa、id_rsa.pub 和 known_
我目前在我的 C 代码中使用 inotify() 系统来监视文件系统中某些目录的事件。 现在,使用这些东西之一的过程如下。你取一个整数(比如 event_notifier),使用 inotify_in
安装 WSL 1. 开启WSL 必须启用“适用于 Linux 的 Windows 子系统”可选功能并重启,然后才能在 Windows 上运行 Linux 发行版。 以管理员运行Powershell(开
我正在学习如何使用 https://intermezzos.github.io 构建基本的操作系统内核 我已经创建了我的 .iso文件,我正在运行 qemu-system-x86_64 -cdrom
不久前我使用 crontab -e 设置了一些 cronjobs .我的 crontab 包括以下行: * * * * * /usr/bin/touch /home/blah/MADEBYCRON 我
我已经安装了 visual studio 2008 Professional Edition,但我无法在其中一个 visual C++ 项目中设置/SUBSYSTEM:POSIX 选项。我还从 SUA
基本上,我需要一个程序来将 Windows .exe 从控制台对应项中排序。 文件扫描器: SortExe(file exe) { if (IsPeWindows(exe)) {
我有一个 python 脚本,我想在计算机的剪贴板中放置一个字符串。我在 Linux、Mac 和以前使用 cygwin 在 Windows 中工作。我不得不修改一行代码以使其在各自的系统中工作。我无法
最近发布了 Windows 10 周年更新的新更新,包括 Linux 子系统 based on Ubuntu 14.04而现在我希望我所有的工作环境都在这个 Linux 子系统中。 我尝试按照官方网站
我是一名优秀的程序员,十分优秀!