<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=BSTR</id>
	<title>BSTR - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=BSTR"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=BSTR&amp;action=history"/>
	<updated>2026-05-25T05:07:29Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=BSTR&amp;diff=456165&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=BSTR&amp;diff=456165&amp;oldid=prev"/>
		<updated>2025-08-23T03:23:35Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;BSTR&amp;#039;&amp;#039;&amp;#039;（Basic String）是一種 Pascal-Style 字捾（明確標示字串長度）和 C-Style 字捾（以 \ 零結尾）的混合物，一般用於著 COM 中，是 Unicode 字捾，即標示字串長度，最後閣有一个值為 \ 零位元組。&lt;br /&gt;
&lt;br /&gt;
對於 BSTR，NULL 佮 &amp;quot; &amp;quot; 有仝款的語意（Visual Basic 引入的語意）。 BSTR 的長度無包含結尾的 \ 零位元組。BSTR 著愛用 SysAlloc \ * 作業系統 API 申請佮釋放。&lt;br /&gt;
&lt;br /&gt;
==引論==&lt;br /&gt;
&lt;br /&gt;
===C-Style 字捾===&lt;br /&gt;
&lt;br /&gt;
C 程式語言本身原並無支援字串資料結構。這字串通常用一字元數組（抑是講陣列）抑是一个指向字元資料的指標來表達。因為 C 語言的數組無包括其長度的資訊，故亦無法度表示所載之字串之長度。C 語言社群對這通用之解決方案為於字串末端增添一數值零的字元。C 語言的標準程式庫中的字串處理功能亦以這為基礎。C-Style 字串特點為無直接包含長度資訊。愛取得字串之長度，著愛對頭到尾算字元數目，一直到拄著字元零為止。因為無設長度的資訊，故 C-style 字串的長度理論上會當無上限。&lt;br /&gt;
&lt;br /&gt;
===Pascal-style 字捾===&lt;br /&gt;
&lt;br /&gt;
Pascal 程式語言採取另外一種方向處理字串。佇儲存字串的記持空間的開首，儲存一固定長度整數以表達其長度。如此 Pascal-style 字串無需要佇咧上尾加添額外字元以標明其結束。毋過因為字葩開首儲存字串長度的空間有限，故 Pascal-style 伊的字串長度有上限。但是得著字串長度方面有速度優勢。&lt;br /&gt;
&lt;br /&gt;
==BSTR 字捾==&lt;br /&gt;
&lt;br /&gt;
BSTR 字葩結合矣 C-style 字串和 Pascal-style 字捾。伊佇咧前四位元組儲存了字串長度（字串的位元組數，但是無包括 Null 結束符）， 佇字串結尾用字元零識別。和 pascal-style 字串無仝，指向 BSTR 字串的指標指向第一个字元，煞非開首的字串長度。故此適用佇讀取 C-style 字串的程式庫平平適用佇咧 BSTR 字捾（毋過寫入去別款）。 字元是按照 Unicode 編碼儲存。允准佇 BSTR 串中央98入去 NULL 字元。&lt;br /&gt;
&lt;br /&gt;
Windows 提供矣 BSTR 相關函式：&lt;br /&gt;
&lt;br /&gt;
* 分配空間並初初化 BSTR，這嘛相當的 char \ * 轉換做 BSTR：比如講，BSTR bstrText=  : : SysAllocString ( L &amp;quot; Test &amp;quot; ) ;&lt;br /&gt;
* BSTR SysAllocString ( const OLECHAR \ * psz ) ;&lt;br /&gt;
* INT SysReAllocString ( BSTR \ * pbstr , const OLECHAR \ * psz ) ;&lt;br /&gt;
* BSTR SysAllocStringLen ( const OLECHAR \ * strIn , UINT ui ) ;&lt;br /&gt;
* INT SysReAllocStringLen ( BSTR \ * pbstr , const OLECHAR \ * psz , unsigned int len ) ;&lt;br /&gt;
* void SysFreeString ( BSTR bstrString ) ;&lt;br /&gt;
* UINT SysStringLen ( BSTR ) ; / / 長度是講字串中字元的數，毋是位元組數&lt;br /&gt;
* UINT SysStringByteLen ( BSTR bstr ) ; 長度是講字串中位元組數&lt;br /&gt;
* BSTR SysAllocStringByteLen ( LPCSTR psz , UINT len ) ;&lt;br /&gt;
* 使用 \ _ variant \ _ t 共 char \ * 轉換做 BSTR：比如講，\ _ variant \ _ t strVar ( &amp;quot; This is a test &amp;quot; ) ; BSTR bstrText=strVar . bstrVal ;&lt;br /&gt;
* 使用 \ _ bstr \ _ t 函式，比如講：BSTR bstrText=\ _ bstr \ _ t ( &amp;quot; This is a test &amp;quot; ) ;&lt;br /&gt;
* 使用 ATL 中專門咧操作 BSTR 字元的 CComBSTR 類：比如講 BSTR bstrText=CComBSTR ( &amp;quot; This is a test &amp;quot; ) ;&lt;br /&gt;
* 使用 ConvertStringToBSTR。比如講：char \ * lpszText=&amp;quot; Test &amp;quot; ; BSTR bstrText=\ _ com \ _ util : : ConvertStringToBSTR ( lpszText ) ;&lt;br /&gt;
* 使用 ConvertBSTRToString：比如講，char \ * lpszText 二=\ _ com \ _ util : : ConvertBSTRToString ( bstrText ) ;&lt;br /&gt;
* 使用 \ _ bstr \ _ t 的類型轉換運算子加載共 BSTR 轉換做 char \ *：比如講，char \ * lpszText 二=bstrText ;&lt;br /&gt;
* CString 轉換做 BSTR 通常是通過使用 CStringT : : AllocSysString 來實現。比如講：CString str ( &amp;quot; This is a test &amp;quot; ) ; BSTR bstrText=str . AllocSysString ( ) ;&lt;br /&gt;
* BSTR 轉換做 CString，比如講：CStringA str=bstrText ;&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
* [/ / web . archive . org / web / 二十五空七百空七堵一千一百十五謼一千三百三十六 / http : / / msdn 二 . microsoft . com / en-us / library / ms 二十二孵一千空六十九 . aspx 頁面存檔備份，存在網路檔案館）MSDN]&lt;br /&gt;
* C String&lt;br /&gt;
* What are VB String&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>