MIDL (帶正負號和未帶正負號的類型)

針對已簽署和未簽署類型使用不同的預設值的編譯器,可能會導致分散式應用程式中的軟體錯誤。 您可以將字元類型明確宣告為帶正負號或未帶正負號,以避免這些問題。 請注意,DCE IDL 編譯器無法辨識 已簽署的關鍵字。 因此,當您使用 MIDL 編譯器 /osf 參數時,無法使用此功能。

MIDL 會定義 小型 類型,以採用與目標 C 編譯器中 char 類型相同的預設符號。 如果編譯器假設 char 為 unsigned, small 也會定義為 unsigned。 許多 C 編譯器可讓您將預設值變更為命令列選項。 例如,在Microsoft Visual C++開發環境中,/J命令列選項會將char的預設符號從已簽署變更為 unsigned。

您也可以使用 MIDL 編譯器命令列參數/char來控制char類型的變數符號和small。 此參數可讓您指定編譯器所使用的預設符號。 MIDL 編譯器會明確宣告所有不符合所產生標頭檔中 C 編譯器預設類型的 字元 類型符號。