次の方法で共有


VarParseNumFromStr 関数 (oleauto.h)

文字列を解析し、それが表す数値の型に依存しない説明を作成します。

構文

HRESULT VarParseNumFromStr(
  [in]  LPCOLESTR strIn,
  [in]  LCID      lcid,
  [in]  ULONG     dwFlags,
  [out] NUMPARSE  *pnumprs,
  [out] BYTE      *rgbDig
);

パラメーター

[in] strIn

変換する入力文字列。

[in] lcid

ロケール識別子です。

[in] dwFlags

呼び出し元が解析を制御できるようにします。したがって、数値の許容可能な構文を定義します。 このフィールドが 0 に設定されている場合、入力文字列には 10 進数以外の数字を含める必要があります。 定義された各フラグ ビットを設定すると、その構文機能の解析が可能になります。 Standard Automation の解析 ( たとえば、VarI2FromStr で使用) には、すべてのフラグが設定されています (NUMPRS_STD)。

[out] pnumprs

解析された結果。

[out] rgbDig

数値が 8 進数、10 進数、16 進数のいずれであるかに応じて、0 ~ 7、0 から 9、または 0 から 15 の範囲の数字の値。 先頭のすべてのゼロが削除されました。 10 進数の場合、数値が 0 でない限り、末尾の 0 も削除されます。この場合、1 つの 0 桁が存在します。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
正常終了しました。
E_OUTOFMEMORY
内部メモリの割り当てに失敗しました。 (DBCS では、すべてのワイド文字がナローにマップされたコピーを作成するためにのみ使用されます。
DISP_E_TYPEMISMATCH
文字列に有効な数値が含まれないか、始めかっこと一致する閉じかっこがありません。 前者の場合、NUMPARSE 構造体で cDig と cchUsed は 0 になります。 後者では、閉じかっこが存在するかのように、NUMPARSE 構造体と数字配列が完全に更新されます。
DISP_E_OVERFLOW
16 進数と 8 進数の場合、配列に収まる桁数よりも多くの数字があります。 decimal の場合、指数が可能な最大値を超えています。 どちらの場合も、NUMPARSE 構造体と数字配列は完全に更新されます (10 進数の場合、cchUsed フィールドは指数部全体を除外します)。

要件

要件
対象プラットフォーム Windows
ヘッダー oleauto.h
Library OleAut32.lib
[DLL] OleAut32.dll