- - PR -
C# DLLの引数にNULLを渡したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-11-08 13:44
いろはです。
C#からVCで作ったDLLを呼び出しています。 DLLの引数にNULLを渡したいのですが、呼び出し側でどう書いて良いかわかりません。 DLL側とC#の宣言例です。 DLL : BOOL CheckFunc( double* param ) C# : bool CheckFunc( ref double param ) unsafeなども使ってみてごちゃごちゃやってみましたが、わかりませんでした。 いきさつとしては、DLL内のスレッドの状態をチェックする関数なのですが、 paramに進み具合を設定してくれます。が必要がなければNULLを入れることができます。 値自体を受け取っても構わないのですが、こういう場合どう書いたら良いのかという 疑問が残りましたので、質問しました。 以上、よろしくお願いします。 |
|
投稿日時: 2005-11-08 13:47
System.IntPtr型を渡すオーバーロードを追加して、System.IntPtr.Zeroを渡すようにすればいいでしょう。
<追記> IntPtr型はポインタのマネージ表現であるため、値渡しで十分です。 void*とIntPtrが同じものと言うことです。 ですのでref IntPtrとするとvoid**と同じになってしまうので要注意。- [ メッセージ編集済み 編集者: Hongliang 編集日時 2005-11-08 13:50 ] |
|
投稿日時: 2005-11-08 14:09
Honglianさま 早速ありがとうございます。
>System.IntPtr型を渡すオーバーロードを追加して、System.IntPtr.Zeroを渡すようにすればいいでしょう。 あっ、そうか。 呼び出し方自体を変えて(追加して)やればいいんですね。 bool CheckFunc( IntPtr param ) っと言う具合に。 VCから移ってまだ経験が浅く、簡単な事で躓いたりしております。 ありがとうございました。 |
1