• ベストアンサー

VB .NetのDLL参照について

名前付パイプの処理をしているのですが、DLLが参照できません。 Public Class ClsJi01   Public Declare Function MakePipe Lib "\DLL\Point.DLL" (ByVal pipe_name As String, ByVal buf_size As Integer, ByVal max_instances As Short, ByVal hpipe As Integer, ByVal err_code As Integer) As Integer  Public Sub M_Pipe()   Dim r As Integer   Dim rpipe As Integer   Dim err_code As Integer   r = MakePipe("\\.\pipe\RS04", 255, 16, rpipe, err_code)  End Sub End Class Point.DLLは以前VB6.0の時に使用していたDLLで自作です。 これで実行すると「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と出ます。 どうしたら良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

全部ByValでやっているようですが、間違いないですか? VALとREFで違っていたりしても、同様のエラーが出る場合があります。

okkomu
質問者

お礼

お返事ありがとうございます! ByValのせいでした・・・。 後ろ2つがByRefということがわかりました。 どうもありがとうございました。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

おなじみのエラーメッセージです。 インスタンスを立てる必要があるのに立てていない場合に発生します。 で、提示されたコードでインスタンスが必要なのはClsJi01クラスだけです。 呼び出し側でClsJi01クラスのインスタンスを立てていないとか。

okkomu
質問者

補足

どうやってClsJi01のインスタンスを立てたら良いのでしょうか? ClsJi01内で宣言して呼び出しているのでどうしているのかな・・・と思いまして・・・。 初めて1ヶ月と初心者ものなのでよろしくおねがいします。

関連するQ&A