プロが教える店舗&オフィスのセキュリティ対策術

名前付パイプの処理をしているのですが、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で自作です。
これで実行すると「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と出ます。
どうしたら良いのでしょうか?

A 回答 (2件)

おなじみのエラーメッセージです。


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

この回答への補足

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

補足日時:2005/03/29 09:49
    • good
    • 0

全部ByValでやっているようですが、間違いないですか?



VALとREFで違っていたりしても、同様のエラーが出る場合があります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/29 18:25

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