第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

C++ OBJECT

C++ OBJECT

C++
慕桂英3389331 2018-09-20 17:13:06
C++ OBJECT
查看完整描述

1 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

C++是一個(gè)很底層的語(yǔ)言,直接與指針和內(nèi)存二進(jìn)制數(shù)據(jù)打交道的,不存在那些高層語(yǔ)言中的語(yǔ)言原生Object的類型。C++中可以用void*保存各個(gè)對(duì)象的指針,但它和Object對(duì)象是有本質(zhì)的區(qū)別的。

你目前的需求,我估計(jì)是要做COM開發(fā)。C++里面調(diào)用COM比較麻煩,不會(huì)像VB或C#那樣給你屏蔽底層的細(xì)節(jié),你需要了解COM的許多底層機(jī)制才能寫好相應(yīng)的代碼。

VB中你簡(jiǎn)單的寫一句CreateInstance("WinHttp.WinHttpRequest.5.1")就可以直接得到WinHttpRequest對(duì)象了,并且得到了它上面的IWinHttpRequest接口,你可以直接拿來(lái)使用。
VB在背后替你做了很多事情,所以你可以很簡(jiǎn)單的使用,但在C++中就不一樣了,你必須一步一步自己來(lái)。

VB在背后幫你做了以下事情:
1. 先根據(jù)ProgID(比如 "WinHttp.WinHttpRequest.5.1")去找到這個(gè)COM類對(duì)應(yīng)的CLSID。使用CLSIDFromProgID()函數(shù)使用ProgID查找對(duì)應(yīng)的CLSID。
2. 調(diào)用CoCreateInstance(),創(chuàng)建指定CLSID對(duì)應(yīng)的COM對(duì)象,得到一個(gè)IUnknown接口指向這個(gè)COM對(duì)象。
3. 調(diào)用IUnknown接口上的QueryInterface方法,獲得這個(gè)COM對(duì)象上指定的接口(比如IWinHttpRequest。一個(gè)COM對(duì)象上可能有多個(gè)接口,你得根據(jù)IID來(lái)指定其中一個(gè))。

至此你才能拿到可以使用的IWinHttpRequest接口。而在C++中,這些都要你自己搞定。
期間涉及到很多COM的概念,如果沒有了解過(guò)的話可能會(huì)很難弄明白,所以如果要在C++下開發(fā)COM相關(guān)的東西,除非你只想照貓畫虎應(yīng)付一下,否則建議還是補(bǔ)一下COM和ATL的相關(guān)基礎(chǔ)知識(shí)。

查看完整回答
反對(duì) 回復(fù) 2018-10-20
  • 1 回答
  • 0 關(guān)注
  • 821 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)