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
Sumber Daya Lain
Referensi
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk