use*_*234 1 compilation c++builder
我使用 Embarcadero C++ 10.2 'Tokyo' 命令行编译器作为一个小尺寸编译器,它以压缩形式分发并且易于“便携”。
我正在尝试Close Tray使用 Win32 API实现这个小程序。
#include <windows.h>
int main()
{
mciSendString("Set CDAudio Door Closed Wait", 0, 0, 0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用编译它可以bcc32c Close.cpp正常工作,但是当双击可执行文件时,控制台窗口会出现。有没有办法取消它的存在,就像/SUBSYSTEM:WINDOWS与 Microsoft 编译器一起使用的那样。
更新:例如,为了做到这一点Digital Mars,我使用编译源文件,sc source.c然后Optlink像这样使用它的链接器
link source.obj,,,winmm.lib /subsystem:windows
因为在 Digital Mars 中编译它是不够的,它需要链接到winmm.lib而 Embarcadero 的编译器会自动执行此操作。
更新 2:我还看到了一个选项-tW,可以为 Windows 制作目标可执行文件,但它没有用,所以正在使用,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;
}
Run Code Online (Sandbox Code Playgroud)
在命令行编译器上它编译
bcc32 -W winmain.c
Run Code Online (Sandbox Code Playgroud)
我不知道该开关是否适用于您的编译器。
更新:如果不需要,可以省略 WinMain 参数。
int WINAPI WinMain() {
Run Code Online (Sandbox Code Playgroud)