Rumah > Artikel > pembangunan bahagian belakang > Mengapa Projek MinGW C Saya Membuang Ralat "Rujukan Tidak Ditakrifkan kepada WinMain" Apabila Menggunakan wWinMain?
Menyelesaikan Rujukan Tidak Ditakrifkan kepada WinMain Menggunakan wWinMain dalam MinGW (C )
Apabila cuba menggantikan int main() dengan int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow) dalam aplikasi C menggunakan MinGW sebagai pengkompil, pengguna mungkin menghadapi mesej ralat "rujukan tidak ditentukan kepada WinMain". Ralat ini timbul disebabkan oleh percanggahan antara perpustakaan permulaan CRT Visual C dan MinGW, yang tidak menyokong titik masuk wWinMain secara asli.
Penyelesaian:
Untuk versi MinGW yang lebih baharu , menambah pilihan pemaut -municode pada baris arahan, pilihan pemaut dalam IDE atau Makefile akan membolehkan penggunaan wWinMain.
g++ other_options_and_arguments -municode
Walau bagaimanapun, untuk versi lama MinGW yang tidak mempunyai sokongan untuk -municode, penyelesaiannya adalah untuk kembali menggunakan fungsi WinMain standard. Dalam kes ini, kod boleh diubah suai seperti berikut:
<code class="c++">int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR pCmdLine, int nCmdShow)</code>
Nota:
Sementara Visual C menyokong titik masuk wWinMain di mana parameter "lpCmdLine" berada "LPWSTR," ia memperkenalkan kerumitan tambahan dengan memerlukan penggunaan definisi prapemproses dan boleh menjadi lebih rumit untuk digunakan. Oleh itu, adalah disyorkan untuk menggunakan fungsi WinMain standard apabila bekerja dengan MinGW melainkan keperluan khusus program menuntut penggunaan baris arahan unicode.
Atas ialah kandungan terperinci Mengapa Projek MinGW C Saya Membuang Ralat "Rujukan Tidak Ditakrifkan kepada WinMain" Apabila Menggunakan wWinMain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!