欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

問津BSTR

系統 1707 0

COM 中除了使用一些簡單標準的數據類型外(注2),字符串類型需要特別重點地說明一下。還記得原則嗎? COM 組件是運行在分布式環境中的 。通俗地說,你不能直接把一個內存指針直接作為參數傳遞給COM函數。你想想,系統需要把這塊內存的內容傳遞到“地球另一 邊”的計算機上,因此,我至少需要知道你這塊內存的尺寸吧?不然讓我如何傳遞呀?傳遞多少字節呀?!而字符串又是非常常用的一種類型,因此 COM 設計者引入了 BASIC 中字符串類型的表示方式---BSTR。BSTR 其實是一個指針類型,它的內存結構是:(輸入程序片段 BSTR p = ::SysAllocString(L"Hello,你好");斷點執行,然后觀察p的內存)


圖二、BSTR 內存結構

  BSTR 是一個指向 UNICODE 字符串的指針,且 BSTR 向前的4個字節中,使用DWORD保存著這個字符串的字節長度( 沒有含字符串的結束符)。因此系統就能夠正確處理并傳送這個字符串到“地球另一 邊”了。特別需要注意的是,由于BSTR的指針就是指向 UNICODE 串,因此 BSTR 和 LPOLESTR 可以在一定程度上混用,但一定要注意:
  有函數 fun(LPCOLESTR lp),則你調用 BSTR p=...; fun(p); 正確
  有函數 fun(const BSTR bstr),則你調用 LPCOLESTR p=...; fun(p); 錯誤!!!
有關 BSTR 的處理函數:

API 函數 說明
SysAllocString() 申請一個 BSTR 指針,并初始化為一個字符串
SysFreeString() 釋放 BSTR 內存
SysAllocStringLen() 申請一個指定字符長度的 BSTR 指針,并初始化為一個字符串
SysAllocStringByteLen() 申請一個指定字節長度的 BSTR 指針,并初始化為一個字符串
SysReAllocStringLen() 重新申請 BSTR 指針

CString 函數

說明

AllocSysString() 從 CString 得到 BSTR
SetSysString() 重新申請 BSTR 指針,并復制到 CString 中

CComBSTR 函數

ATL 的 BSTR 包裝類。在 atlbase.h 中定義

Append()、AppendBSTR()、AppendBytes()、ArrayToBSTR()、BSTRToArray()、AssignBSTR()、Attach()、Detach()、Copy()、CopyTo()、Empty()、Length()、ByteLength()、ReadFromStream()、WriteToStream()、LoadString()、ToLower()、ToUpper()
運算符重載:!,!=,==,<,>,&,+=,+,=,BSTR
太多了,但從函數名稱不能看出其基本功能。詳細資料,查看MSDN 吧。另外,左側函數,有很多是 ATL 7.0 提供的,VC6.0 下所帶的 ATL 3.0 不支持。
由于我們將來主要用 ATL 開發組件程序,因此使用 ATL 的 CComBSTR 為主。VC也提供了其它的包裝類 _bstr_t。

問津BSTR


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成人羞羞视频在线 | 国产在线观看av | 97精品国产 | 精品av | 国产精品视频免费观看 | 久久福利青草精品免费 | 国产一区二区小早川怜子 | 成人毛片视频在线观看 | 精品毛片 | 日韩精品小视频 | 色综合亚洲天天综合网站 | 激情伊人| 久久第四色 | 国产高清永久免费 | 免费一区二区三区免费视频 | 在线无码 | 色综合加勒比 | 一区二区三区免费看 | 精品久久久久久亚洲 | 亚洲欧洲精品在线 | 国产精选经典三级小泽玛利亚 | 欧美―第一页―浮力影院 | 新封神榜杨戬电影免费动画在线观看国语 | 精品亚洲一区二区 | 欧美午夜一艳片欧美精品 | 美女下面直流白浆视频 | 欧美高清极品videossex | 超碰在线播 | 国产精品无码人妻无码色情多人 | 亚洲天堂一区二区三区 | 天天影视综合网色综合国产 | 成人午夜免费福利 | 亚洲狠狠丁香婷婷综合久久久 | 龙珠z国语版在线观看 | 亚洲偷图色综合色就色 | 91视频视频| 四虎tv在线观看884aa | 青青草在线免费视频 | 一级片在线观看 | 亚洲色婷婷久久精品AV蜜桃久久 | 国产精品视频在线观看 |