共用方式為


格式化字串

格式字串是 NDR 引擎瞭解的解譯令牌。 格式字串通常被稱為 MOP;本文件中始終使用格式字串這個術語。

更精確地說,格式字元是一個不可再分的可解譯標記。 每個格式字元的大小都是一個字節。 格式字串是一連串的格式字元或格式字元和數值數據。 詞彙描述元也用於命名一般序列;例如,參數格式字串或參數描述元是用來描述例程參數的格式字串。

格式字元具有建議符號名稱,例如FC_LONG或FC_STRUCT。 MIDL 和 NDR 引擎所使用的所有格式字串字元都會定義在 Ndrtypes.h 檔案中。

格式化字串表格

引擎會使用兩個主要格式字串數據表:程式格式字串數據表,__MIDL_ProcFormatString,其會保留程式描述元:和類型格式字串資料表,__MIDL_TypeFormatString,保留數據類型描述元。 編譯程式會在主要存根檔案中產生這兩者(*_c.c、*_s.c、*_p.c)。 程式格式字串數據表大多由各種解釋器使用,但不論編譯程式模式為何,它也會用於緩衝區轉換。 呼叫核心 NDR 引擎以指出要處理的特定資料類型時,會使用型別格式字串數據表。

格式化字串表示法

本文件中所使用的表示法遵循常見的程式設計描述指導方針,其中竪線(|)用於指代替代建構,而方括弧([ ])用於表示選擇性元素。 格式字串通常會堆疊以提高可讀性(清晰性)。 在本檔中,FC 代表單一格式字元。 以大寫字母呈現格式字元,並使用其實際的符號名稱。 其他任意欄位則以名稱和大小表示。

角括弧 (<>) 用來表示描述項的大小。 下表所示的慣例是採用的。

表示法 意義
< n> 描述項的大小為 n 個字節。
<> 描述項的大小會有所不同。
{<>}* 描述項會重複任何次數 (0,1,2 ...)。

 

下列格式字元具有特殊意義。

字元 意義
FC_END 表示某些格式字串的結尾。
FC_PAD 未解譯的補位字元。