Templat Visual C++ UMDF V2 tampaknya membuat proyek C dan bukan C++

Saya baru dalam pengembangan pengemudi. Saya diminta untuk menulis Driver Mode Universal untuk perangkat USB sederhana. Saya telah membaca buku "Mengembangkan Driver dengan Windows Driver Foundation." Saya juga telah melihat dan mencoba memahami contoh kode yang dirujuk oleh buku tersebut. Buku ini menunjukkan kode C++ dan contoh kode yang saya lihat ada di C++. Saya bahkan harus mempelajari C++ karena saya belum pernah melihatnya di abad ini. Menggunakan VS 2017, ketika saya membuat proyek dari template, saya memilih Visual C++ -> Windows Drivers -> WDF -> User Mode Driver (UMDF V2). Setelah proyek dibuat, secara keseluruhan, ini adalah proyek C, bukan proyek C++. Apa aku hanya bingung? Jawabannya adalah Ya, tetapi mengapa ia membuat proyek yang berisi file dengan ekstensi .c dan bukan .cpp padahal jelas saya memilih template Visual C++? Adakah wawasan untuk driver perangkat pemula?


person Dar    schedule 18.10.2018    source sumber


Jawaban (1)


UMDF 2 dirancang untuk memudahkan porting driver ke KMDF pada akhirnya. Karena C++ tidak dapat digunakan dalam mode kernel, proyek UMDF 2 dikonfigurasi untuk C secara default. Jika Anda ingin menggunakan C++, ubah pengaturan kompiler di properti proyek, namun harap pastikan tidak ada pengecualian yang lolos dari kode Anda.

person Swordfish    schedule 18.10.2018
comment
Sebenarnya C++ dapat digunakan dalam mode kernel, asalkan Anda peduli dengan hal-hal driver penting seperti kesalahan halaman. - person Michael Chourdakis; 19.10.2018
comment
Terima kasih atas penjelasannya. Dengan suara tidak setuju yang diperoleh pertanyaan saya, saya khawatir saya harus membuang pertanyaan saya ke kategori pertanyaan bodoh tahun ini. - person Dar; 19.10.2018
comment
Ada whitepaper (yang agak lama) tentang penggunaan C++ dalam mode kernel: kmcode.doc (tautan unduh langsung). - person Swordfish; 19.10.2018