Fungsi WinMain (winbase.h)

Titik masuk yang disediakan pengguna untuk aplikasi berbasis Windows grafis.

WinMain adalah nama konvensional yang digunakan untuk titik masuk aplikasi. Untuk informasi selengkapnya, lihat Keterangan.

Sintaks

int __clrcall WinMain(
  [in]           HINSTANCE hInstance,
  [in, optional] HINSTANCE hPrevInstance,
  [in]           LPSTR     lpCmdLine,
  [in]           int       nShowCmd
);

Parameter

[in] hInstance

Jenis: HINSTANCE

Handel ke instans aplikasi saat ini.

[in, optional] hPrevInstance

Jenis: HINSTANCE

Handel ke instans aplikasi sebelumnya. Parameter ini selalu NULL. Jika Anda perlu mendeteksi apakah instans lain sudah ada, buat mutex bernama unik menggunakan fungsi CreateMutex . CreateMutex akan berhasil meskipun mutex sudah ada, tetapi fungsi akan mengembalikan ERROR_ALREADY_EXISTS. Ini menunjukkan bahwa instans lain dari aplikasi Anda ada, karena membuat mutex terlebih dahulu. Namun, pengguna berbahaya dapat membuat mutex ini sebelum Anda melakukannya dan mencegah aplikasi Anda dimulai. Untuk mencegah situasi ini, buat mutex bernama acak dan simpan nama sehingga hanya dapat diperoleh oleh pengguna yang berwenang. Atau, Anda dapat menggunakan file untuk tujuan ini. Untuk membatasi aplikasi Anda ke satu instans per pengguna, buat file terkunci di direktori profil pengguna.

[in] lpCmdLine

Jenis: LPSTR

Baris perintah untuk aplikasi, tidak termasuk nama program. Untuk mengambil seluruh baris perintah, gunakan fungsi GetCommandLine .

[in] nShowCmd

Jenis: int

Mengontrol bagaimana jendela akan ditampilkan. Parameter ini dapat menjadi salah satu nilai yang dapat ditentukan dalam parameter nCmdShow untuk fungsi ShowWindow .

Nilai kembali

Jenis: int

Jika fungsi berhasil, mengakhiri ketika menerima pesan WM_QUIT , fungsi harus mengembalikan nilai keluar yang terkandung dalam parameter wParam pesan tersebut. Jika fungsi berakhir sebelum memasukkan perulangan pesan, fungsi akan mengembalikan nol.

Keterangan

Nama WinMain digunakan oleh konvensi oleh banyak kerangka kerja pemrograman. Tergantung pada kerangka kerja pemrograman, panggilan ke fungsi WinMain dapat didahului dan diikuti oleh aktivitas tambahan khusus untuk kerangka kerja tersebut.

WinMain Anda harus menginisialisasi aplikasi, menampilkan jendela utamanya, dan memasukkan perulangan pengambilan dan pengiriman pesan yang merupakan struktur kontrol tingkat atas untuk sisa eksekusi aplikasi. Hentikan perulangan pesan saat menerima pesan WM_QUIT . Pada saat itu, WinMain Anda harus keluar dari aplikasi, mengembalikan nilai yang diteruskan dalam parameter wParam pesan WM_QUIT. Jika WM_QUIT diterima sebagai akibat dari memanggil PostQuitMessage, nilai wParam adalah nilai parameter nExitCode fungsi PostQuitMessage. Untuk informasi selengkapnya, lihat Membuat Perulangan Pesan.

Aplikasi ANSI dapat menggunakan parameter lpCmdLine dari fungsi WinMain untuk mengakses string baris perintah, tidak termasuk nama program. Perhatikan bahwa lpCmdLine menggunakan jenis data LPSTR alih-alih jenis data LPTSTR . Ini berarti bahwa WinMain tidak dapat digunakan oleh program Unicode. Fungsi GetCommandLineW dapat digunakan untuk mendapatkan baris perintah sebagai string Unicode. Beberapa kerangka kerja pemrograman mungkin menyediakan titik masuk alternatif yang menyediakan baris perintah Unicode. Misalnya, komplotan Microsoft Visual Studio C++ menggunakan nama wWinMain untuk titik masuk Unicode.

Contoh

Contoh kode berikut menunjukkan penggunaan WinMain

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, PSTR cmdline, int cmdshow)
{
    return MessageBox(NULL, "hello, world", "caption", 0);
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winbase.h (termasuk Windows.h)

Lihat juga

Konseptual

CreateMutex

DispatchMessage

GetCommandLine

GetMessage

Sumber Daya Lain

PostQuitMessage

Referensi

TranslateMessage

Windows