掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB6で保護モードAPIを動かすには? (ID:103078)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> こちら、ByVal Longで宣言してStrPtr関数でアドレスを渡してみましたが、 相手が LPCWSTR の場合は、その方法で良さそうですけれどね(SetWindowTextW など)。 今回は LPWSTR* なので、その方法では駄目だと思います。 > 何の値も受け取れていません。 試していませんが、こんな感じでどうでしょう。 (1) Long 型の変数を用意する。 (2) APIに対して、その変数のアドレス(VarPtr)を値渡しするか、または、変数を参照渡しする。 (3) API 側で Unicode 文字列が生成され、その先頭アドレスが 1 の変数に書き込まれる。 (4) 3 が指す Unicode文字列の長さを、lstrlenW API で調べる。 (5) その文字列が格納可能な領域を Byte 配列を ReDim で確保する。 (6) 3 が指す Unicod 文字列を、lstrcpyW API か RtlMoveMemory API で 5 に書き込む。 (7) 6 のUnicode バイナリを String 変数に代入する。NULL 終端が含まれていればそれも取り除く。 (8) DLL で確保されていたメモリは不要なので、1 が指すポインタを CoTaskMemFree API で解放する。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.