エンドウC++でのビルドエラーについて補足します。LNK2019: unresolved external symbol WinMainというエラーは、プロジェクトの種類が「Windowsアプリケーション (GUI)」に設定されているにもかかわらず、プログラムのエントリーポイント(開始点)がコンソールアプリ用のmain関数のままであるために発生します。
この問題を解決し、コマンドプロンプトウィンドウを表示しない単一のEXEを作成するには、ソースコードを以下のように修正する必要があります。
#include <Windows.h>
// エントリーポイントを WinMain に変更
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
// クラス名でエクスプローラーのウィンドウを探す
HWND fileExplorerWindow = FindWindow(L"CabinetWClass", nullptr);
if (fileExplorerWindow != nullptr) {
// WM_CLOSEメッセージを送信してウィンドウを閉じる
SendMessage(fileExplorerWindow, WM_CLOSE, 0, 0);
}
return 0;
}
さらに、Visual Studioのプロジェクト設定で、リンカーの「システム」設定にある「サブシステム」を「Windows (/SUBSYSTEM:WINDOWS)」に設定してください。
これにより、VBScriptなどの外部スクリプトを使わずに、単体のEXEファイルだけで要件を満たすことができます。