在 C++ Builder 中隐藏控制台 windows
Hide console windows in C++ Builder
我正在使用 Embarcadero C++ 10.2 ‘Tokyo’ 命令行编译器作为一个小型编译器,它以压缩形式分发并且很容易 'portable'。
我正在尝试使用 Win32 API 实现这个小 Close Tray
程序 API。
#include <windows.h>
int main()
{
mciSendString("Set CDAudio Door Closed Wait", 0, 0, 0);
return 0;
}
使用 bcc32c Close.cpp
编译它工作正常,但当双击可执行文件时,控制台 window 显示正常。
有没有办法像 Microsoft 编译器使用的 /SUBSYSTEM:WINDOWS
一样取消它的存在。
更新:例如,为了在 Digital Mars
中做到这一点,我使用 sc source.c
编译源文件,然后像那样使用它的链接器 Optlink
link source.obj,,,winmm.lib /subsystem:windows
因为在 Digital Mars 中编译它是不够的,它需要链接到 winmm.lib
而 Embarcadero 的编译器会自动完成。
更新 2: 我还看到了一个选项 -tW
可以使 Windows 的 taget 可执行,但它没有用,所以正在使用 bcc32x -mwindows
因为它是基于 Clang 的,仍然没有得到需要的结果。
你可以试试
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int CmdShow) {
mciSendString("Set CDAudio Door Closed Wait", 0, 0, 0);
return 0;
}
在命令行编译器上编译
bcc32 -W winmain.c
我不知道这个开关是否适用于您的编译器。
更新:WinMain 参数如果不需要可以省略。
int WINAPI WinMain() {
我正在使用 Embarcadero C++ 10.2 ‘Tokyo’ 命令行编译器作为一个小型编译器,它以压缩形式分发并且很容易 'portable'。
我正在尝试使用 Win32 API 实现这个小 Close Tray
程序 API。
#include <windows.h>
int main()
{
mciSendString("Set CDAudio Door Closed Wait", 0, 0, 0);
return 0;
}
使用 bcc32c Close.cpp
编译它工作正常,但当双击可执行文件时,控制台 window 显示正常。
有没有办法像 Microsoft 编译器使用的 /SUBSYSTEM:WINDOWS
一样取消它的存在。
更新:例如,为了在 Digital Mars
中做到这一点,我使用 sc source.c
编译源文件,然后像那样使用它的链接器 Optlink
link source.obj,,,winmm.lib /subsystem:windows
因为在 Digital Mars 中编译它是不够的,它需要链接到 winmm.lib
而 Embarcadero 的编译器会自动完成。
更新 2: 我还看到了一个选项 -tW
可以使 Windows 的 taget 可执行,但它没有用,所以正在使用 bcc32x -mwindows
因为它是基于 Clang 的,仍然没有得到需要的结果。
你可以试试
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int CmdShow) {
mciSendString("Set CDAudio Door Closed Wait", 0, 0, 0);
return 0;
}
在命令行编译器上编译
bcc32 -W winmain.c
我不知道这个开关是否适用于您的编译器。
更新:WinMain 参数如果不需要可以省略。
int WINAPI WinMain() {