- - PR -
PInvokeにおけるLPDWORD
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-06-22 12:11
PInvokeで LPDWORD を引数に持つ関数を呼び出したいとします。
このとき C# 側では ref や out をつけることで受け渡しできますが、アドレス0(NULLポインタ)を関数に渡すことはできないのでしょうか? refやoutで宣言してしまうと常にNULLポインタ以外のを渡すことしかできないように思えます。 やはりunsafeを使うしかないのでしょうか…? | ||||
|
投稿日時: 2004-06-22 12:32
すいません
>やはりunsafeを使うしかないのでしょうか…? のところは、 >intオーバーロードするしかないのでしょうか? に訂正いたします。 「クラス」 UInt32 で引数を取るようにしてもnullは渡せないようです。 | ||||
|
投稿日時: 2004-06-22 12:43
そうなんですよね ;-p 仕方が無いので、NULL を与えたい場合は、IntPtr を引数にとる P/INVOKE 宣言をもう1個別に作って使い分けてます>わたし _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2004-06-22 17:35
ああやっぱりそうなんですね…。 しかしポインタを取る引数が複数あると、オーバーロードしないといけない数もガンガン増える気がしますが…。まあ細かいことをしたければManaged C++で書いてそいつを呼び出せ、ということでしょうか。 ガッ(遅 |
1