パラメーターをWCHAR [100]からWCHAR **に変換することはできません

StackOverflow https://stackoverflow.com/questions/4093353

  •  28-09-2019
  •  | 
  •  

質問

wchar **を期待する方法があります。この方法からデータを取り戻す必要があります。私は配列wchar [100]を宣言し、それを関数に渡しています。コンパイラはこのエラーをスローします:

WCHAR result[100];
UINT i;
hr = SomeFunc(handle, &i, result);

エラーC2664: 'xxxx':パラメーター3を「wchar [100]」から「wchar **」に変換できません

役に立ちましたか?

解決

一般的に言えば、関数がポインターにポインターを取る場合(WCHAR** この場合)それから、それは独自の記憶を割り当て、その記憶に向けられたポインターを設定します。のドキュメント SomeFunc これが実際に何が起こるかを説明する必要があります。

その場合、次のようなものが必要になるでしょう。

WCHAR* result = NULL;
UINT i;
hr = SomeFunc(handle, &i, &result);

そして、それを利用します result 成功した場合。

もちろん、その場合、あなたはおそらく、そのメモリを扱うことを心配する必要があります result 指すように設定されていました。のドキュメント SomeFunc それを行うために必要なことも明示的に言うべきです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top