- PR -

VB .NetのDLL参照について

1
投稿者投稿内容
ゆっき
常連さん
会議室デビュー日: 2005/03/29
投稿数: 20
投稿日時: 2005-03-29 12:21
初めて1ヶ月も初心者もので、初めて投稿します。
名前付パイプの処理をしているのですが、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で自作です。
これで実行すると「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と出ます。
インスタンスを設定するにはどうしたら良いのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-03-29 12:27
同一サイト内で、マルチポストとは... 如何なものか... (^^)
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20177&forum=26



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ゆっき
常連さん
会議室デビュー日: 2005/03/29
投稿数: 20
投稿日時: 2005-03-29 16:20
すみませんでした。
削除しました!
パテ太
ベテラン
会議室デビュー日: 2004/08/16
投稿数: 64
お住まい・勤務地: 千葉・東京
投稿日時: 2005-03-29 17:12
VB.Net は全然存じませんので
回答ではないのですが
引用:

  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


自作の関数ということなので関数の仕様を存じませんが名前から想像すると
hpipe (パイプのハンドル)
err_code (発生したエラーコード)
のようですが、ByVal で正しいですか?

引用:

 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


必要箇所を抜き出しただけで全文ではないのかもしれませんが
これだと rpipe と err_code を初期化していないように見えますが初期化してますか?

の 2 点あたりが少し気になったのですがそれは良いのでしょうか?
ゆっき
常連さん
会議室デビュー日: 2005/03/29
投稿数: 20
投稿日時: 2005-03-29 18:22
正しくは
Public Declare Function MakePipe Lib "¥¥DLL¥¥Point.DLL" (ByVal pipe_name As String, ByVal buf_size As Integer, ByVal max_instances As Short, ByRef hpipe As Integer, ByRef err_code As Integer) As Integer
でした。
ByRefとByValについて調べてみてわかりました。
どうもありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)