プロが教えるわが家の防犯対策術!

C++で作成したDLLをVBから変数を渡して
文字列が格納されているメモリアドレスを取得して、
別のDLLにメモリアドレスを渡したいのですが、
具体的な指定の仕方を教えてください。

A 回答 (4件)

Longで定義した変数でうけとって、その変数を渡せばOKです。

この回答への補足

ありがとうございます。
VC++のDLL側では何で渡せばいいのでしょうか。
char *str;でアドレスを保持してます。
キャストして代入など行ってるのですが、うまくいきません。
よろしくお願いします。

補足日時:2001/09/18 11:11
    • good
    • 0

サンプルどうぞ



参考URL:http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/00 …
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2001/09/18 11:20

日本語として成り立っていないので、勝手に解釈します。



VBの文字列のアドレスを取得することはできません。
VBが文字列をAPIに渡すとき、必ずBSTR→LPSTRの変換が行われ、実際に渡されるアドレスはその先頭になります。
そして、APIから制御が返ったときに、LPSTR→BSTRの変換をして、元に戻します。
そのために、APIに渡したアドレスを関数が終わった後にストックしておいても、無効なアドレスを参照することになります。

具体的に何が目的なのかが明確になれば、別の方法を提案できると思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2001/09/18 11:21

以下のページでも参照してみればどうですか?


どのくらい試したのか書いているともっと具体的にアドバイスが
もらえるかと思いますよ。

参考URL:http://www.angel.ne.jp/~mike/vb_dll/

この回答への補足

以前arataさんに教えていただいたものなんですけど、
Public Declare Sub MemCopy _
Lib "Kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, _
hpvSource As Any, _
ByVal cbCopy As Long)
↑これのhpvSource As Anyに入れるメモリアドレスは
VC++で作成したDLLから取得して、指定したいのですが指定の仕方が
わからないので教えてください。

補足日時:2001/09/13 11:34
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2001/09/18 11:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!