Rumah >pembangunan bahagian belakang >C++ >Mengapa MinGW membuang ralat 'rujukan tidak ditentukan kepada WinMain' apabila menggunakan wWinMain dalam C ?

Mengapa MinGW membuang ralat 'rujukan tidak ditentukan kepada WinMain' apabila menggunakan wWinMain dalam C ?

Linda Hamilton
Linda Hamiltonasal
2024-11-05 11:23:02300semak imbas

Why does MinGW throw an

Menyelesaikan rujukan yang tidak ditakrifkan kepada WinMain apabila menggunakan wWinMain dalam C (MinGW)

Apabila cuba menggunakan wWinMain (HINSTANCE hInstance, HINSTANCE, HINSTANCE, PWSTRA , int nCmdShow) sebagai titik masuk program dalam C di bawah MinGW, ralat "rujukan tidak ditentukan kepada WinMain" boleh berlaku.

Punca:

MinGW, terutamanya versi lama , tidak menyokong titik masuk wWinMain secara asli, yang menjangkakan hujah baris arahan aksara lebar (WCHAR).

Penyelesaian:

Terdapat dua penyelesaian yang berpotensi:

1. Gunakan Bendera -municode:

Versi MinGW yang lebih baharu menyokong bendera pemaut -municode, yang bertukar kepada kod permulaan alternatif yang membenarkan penggunaan wWinMain. Tambahkan bendera ini pada baris arahan anda, pilihan pemaut dalam IDE anda atau Makefile:

g++ other_options_and_arguments -municode

2. Gunakan Titik Masuk WinMain:

Untuk versi MinGW yang lebih lama atau jika anda memilih untuk tidak menggunakan bendera -municode, anda boleh kembali menggunakan titik masuk WinMain standard. Ini memerlukan pengubahsuaian kod anda seperti berikut:

  • Tukar wWinMain kepada WinMain
  • Tukar PWSTR pCmdLine kepada PSTR pCmdLine

Nota Tambahan: >

Jika anda perlu mengakses argumen baris perintah Unicode kemudian dalam program anda, gunakan LPWSTR cmd_line = GetCommandLineW(); bukannya menggunakan argumen WinMain.

Atas ialah kandungan terperinci Mengapa MinGW membuang ralat 'rujukan tidak ditentukan kepada WinMain' apabila menggunakan wWinMain dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn