Sampel Model Objek Komponen (COM)
COM adalah teknologi yang sangat kuat untuk mengkomponen perangkat lunak berdasarkan desain yang berorientasi objek. Silakan lihat dokumentasi di sini untuk detail lebih lanjut.
Salah satu kelemahan utama COM adalah boilerplate awal yang diperlukan untuk mengatur komponen COM. ATL adalah satu set perpustakaan yang membantu membangun boilerplate, tetapi dilengkapi dengan kompleksitasnya sendiri.
Sampel ini di sini menyediakan kode kerangka yang akan melakukan pengaturan yang lebih berat dari pengaturan dan pendaftaran sehingga pengembang dapat fokus pada logika bisnis saja daripada mengkhawatirkan infrastruktur. Itu tidak menggunakan ATL . Sebaliknya ia menggunakan kode C ++ sederhana sehingga pengembang dapat memahami dan men -debug kerangka yang mendasarinya jika diperlukan.
Istilah yang digunakan
- Server COM adalah objek yang menyediakan logika bisnis.
- Klien COM adalah kode yang mengakses server COM melalui antarmuka apa pun yang diekspos oleh server COM.
- Interaksi antara klien COM dan server COM terjadi melalui marshaling, dan membutuhkan DLL proxy-stub.
- Silakan lihat dokumentasi di sini untuk detail lebih lanjut.
Proyek ini
Berikut adalah ringkasan tentang berbagai direktori dalam sampel ini.
- COMSampleProxy : ProxyStub DLL. Untuk menambahkan antarmuka baru, cukup tambahkan file IDL baru ke proyek.
- ComSampleserver : Dukungan untuk mengaktifkan dalam proses server COM serta out-of-process (dalam OS yang disediakan DLL Surrogate yaitu dllhost.exe).
- ComSampleservice : Dukungan untuk mengaktifkan server COM dalam layanan Localsystem.
- Comsampleclient : Contoh klien com yang memanggil dan menguji server COM yang disebutkan di atas.
Membuat dan mendaftarkan komponen COM baru
Membuat komponen COM baru sangat mudah dengan model ini.
- Tambahkan antarmuka Anda :
- Tambahkan file IDL baru dengan proyek antarmuka Anda ke comsampleProxy. Lihat File Sampel /comsampleProxy/icomtest.idl.
- Laksanakan Kelas Com Anda :
- Untuk aktivasi dalam proses atau out-of-process dalam aktivasi pengganti : Tambahkan implementasi kelas Anda ke proyek comsampleserver. Lihat contoh comsampleserver/ccomservertest.cpp. Sekarang pergi ke comsampleserver/dll.cpp dan cukup tambahkan entri kelas Anda ke "g_classes".
- Untuk aktivasi di luar proses dalam layanan Localsystem : Tambahkan Implementasi Tambah Kelas Anda ke Proyek ComSampleservice. Lihat contoh comsampleservice/ccomservicetest.cpp. Sekarang pergi ke comsampleservice/main.cpp dan cukup tambahkan entri kelas Anda ke "g_classes".
- Daftarkan komponen com Anda :
- Salin comsampleProxy.dll ke mesin target Anda. Dari prompt yang ditinggikan, RUN: REGSVR32 COMSampleProxy.dll .
- Untuk aktivasi dalam proses atau di luar proses dalam aktivasi pengganti : Salin comsampleserver.dll ke mesin target Anda. Dari prompt yang ditinggikan, RUN: REGSVR32 COMSampleserver.dll .
- Untuk aktivasi di luar proses dalam layanan Localsystem : Salin comsampleservice.exe ke mesin target Anda. Dari command prompt yang ditinggikan, jalankan: comsampleservice.exe /registerserver .
Hanya itu saja!
Merek dagang
Proyek ini dapat berisi merek dagang atau logo untuk proyek, produk, atau layanan. Penggunaan resmi merek dagang atau logo Microsoft tunduk dan harus mengikuti pedoman merek dagang & merek Microsoft. Penggunaan merek dagang atau logo Microsoft dalam versi yang dimodifikasi dari proyek ini tidak boleh menyebabkan kebingungan atau menyiratkan sponsor Microsoft. Setiap penggunaan merek dagang atau logo pihak ketiga tunduk pada kebijakan pihak ketiga tersebut.