
VB.NETでプログラムを作成しているのですが、
DLLを頂きました。
このDLLをプログラムで使いたいのですがよくわかりません。
(1)DLLは実行ファイルにおけばいいんですよね?
(2)DLLを参照しろっていう設定は必要ですか?
(3)DLLには、プロパティ、メソッド、イベントとあるみたいなんですが、これらを宣言しないといけないと思うのですがどうやればいいのでしょうか?
(4)下のような資料もらったのですがVBcnvというのが定義されていないとエラーがでるのですがどうやって宣言するのでしょう?
private <任意名> as VBcnv
(5)libファイルも一緒にあったのですが、どういう風に使えばいいのでしょうか?何につかうのでしょうか?
すいません、どなたかお助けを~
No.7ベストアンサー
- 回答日時:
> 参考資料にはVB6.0のdll追加方法が書いてありまして、それには、参照設定という画面が書いてあります。
それならCOMですね。
>(1)
インストーラが用意されていないのであれば、手動でレジストする必要があります。
>(2)
VS.NETのプロジェクトがCOMを参照する必要があります。
>(3)
必要ありません。
VS.NETのプロジェクトがCOMを参照すれば自動的にラッパークラスが作成されます。
オブジェクトブラウザでプロパティ、メソッド、イベントを確認できます。
>(4)
private <任意名> as new ラッパークラス名
>(5)
謎。
ありがとうございました。参照設定で参照するようにしました。プロパティに設定値をいれてみようとするとインスタンスがないといわれエラーがでてしまいました。もうすこし勉強してみます。
No.6
- 回答日時:
VBcnv.名前とゆうことは、DLLから返ってくる答えが、構造体(typeで宣言してある)のポインタ(変数の置かれている場所)としてもどってくるとおもいます。
構造体の定義もしないとだめだと思います。
例として、VBcnvがDVDプレーヤーだとします。
名前とゆうのは、DVDプレーヤーのなかのplayボタンという風に、VBcnv.のなかにいろいろな変数が定義されているとゆうことです。(わかりにくいかもしれませんが)
>DLLは市場にでているようなDLLではなく、ファイル変換を手助けしてくれるようなDLLなのです。
自分で作ったものでも手続きは同じです。
No.5
- 回答日時:
#1 の者です。
> Private Shared [Sub | Fucntion] [識別名](ByVal [引数] As [型]) [As [型]]
> End [Sub | Function]
> どっちでもいいのでしょうか?
大切なのはその上にあった属性なんですが...
DllImport 使った方が良いですね。
http://www.microsoft.com/japan/msdn/library/defa …
No.4
- 回答日時:
No2です。
dllの中の関数を使うだけなんですよね?
でしたらDll名、関数名、引数、戻り値があればさっき書いたように宣言して普通にソースの中で使えます。
VBcnvがDll名なんでしょうか?
dllを使う為の宣言とプロパティ、メソッド、イベントは関係ないと思います。
No.3
- 回答日時:
つかう、DLLによっても違います。
呼びだし規約があって、それぞれ、違います。どのような、DLLかがわからないと説明しにくいです。
たとえば、WINDOSのAPIのを使う場合、[user32.dll]のウィンドウを検索する関数を使う場合は、
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hwndParent As Long,ByVal hwndChildAfter As Long,ByVal lpszClass As String,ByVal As String,ByVal lpszWindow As String ) As Long
のように宣言します。
hwndParent はロング型ですよ
hwndChildAfterはロング型ですよ
lpszClassはストリング型ですよ
lpszWindowはストリング型ですよ
帰ってくる答えは、ロング型ですよ
と、DLLを作った人が決めます。その、約束どおりによびださないと、エラーになったりします。
なので、その、DLLがどのようなものかわからないと、説明しにくいのです。
この回答への補足
DLLは市場にでているようなDLLではなく、ファイル変換を手助けしてくれるようなDLLなのです。
参考資料にはVB6.0のdll追加方法が書いてありまして、それには、参照設定という画面が書いてあります。
No.2
- 回答日時:
1.実行ファイルと同じフォルダに入れておけばOKです。
2.3.
通常、
Public Declare Function 関数名 Lib DLL名 () As 型
のように書きます。(使いたい関数全て)
4.VBcnvとはオリジナルの型でしょうか?
typeで定義してあげればいいと思いますが・・
どういうものか資料とかないのですか??
5.dllとは関係ないと思いますがこれだけでは判断つきません。
この回答への補足
レスありがとうございます。
頂いた資料には、プロパティ、メソッド、イベントが書いてありまして、資料を見る限り、
プロパティとメソッドに関しては、すべて
VBcnv.名前
となっていました。
プロパティ、メソッド、イベントがよく理解できていないのですが、
プロパティ=変数みたいなもの?
メソッド=関数
イベント=Btn_clickみたいなもの?
と認識しているのですがあっているのでしょうか。
だとすると、メソッドはPublic Declare Function 関数名 Lib DLL名 () As 型
でできそうなのですが、他の二つの宣言方法がわからないです><
また、イベントのソースってDLL側にあると思うんですが、イベント発生時に何かやりたいとした場合どうするんでしょうか?
No.1
- 回答日時:
こんにちは、じゃんぬねっと です。
この DLL がクラス ライブラリ (.NET のマネージコード DLL) なのか、そうでないかで回答が変わります。
> libファイルも一緒にあったのですが
これを見る限り、前述ではない DLL でしょうか?
だとすると、P/Invoke などを調べてみてください。
メソッドの定義はこんな感じです。
<DllImports("HogeHoge.dll" CharSet:=CharSet.Auto)> _
Private Shared [Sub | Fucntion] [識別名](ByVal [引数] As [型]) [As [型]]
End [Sub | Function]
この回答への補足
DLLはVB.NETで作っていないと思います。
P/Invokeとはなんでしょうか?><
メソッドの定義はlashichiさんの
Public Declare Function 関数名 Lib DLL名 () As 型
と
JeanneNetさんの
Private Shared [Sub | Fucntion] [識別名](ByVal [引数] As [型]) [As [型]]
End [Sub | Function]
どっちでもいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ
その他(プログラミング・Web制作)
-
Visual Studio 「AnyCpu」について
C言語・C++・C#
-
VB.NETで参照設定したDLLの修正反映
Visual Basic(VBA)
-
-
4
VBから参照できないCのDLLを使用する方法
Visual Basic(VBA)
-
5
VB.NETでDLLを読み込ませる時にエラーがでる
Visual Basic(VBA)
-
6
BC30002: 型 'ListItem' が定義されていません となり動きません
Microsoft ASP
-
7
CloseとDisposeの違い
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件によって別のクラスのイン...
-
C#で別スレッドからメインform...
-
C#でVB.NETのReplaceコマンドを...
-
ユーザーフォームのVBAエラー
-
c# ネットワークプログラム
-
イベントにAddHandlerされてい...
-
VB.NETでのEnumの使用について
-
ボタンのオーナードローについて
-
既定のコンストラクタがない?
-
[MFC] CWnd::MessageBoxの警告...
-
特定のビューへのポインタ取得...
-
(UWSC) 「#32770」の意味わかり...
-
FriendとPublicの違い。。。
-
DebugクラスとTraceクラスの違い
-
VC++ リストボックスにデータを...
-
C#で定数クラスをシングルトン...
-
DataGridViewのセルに斜線を引...
-
質問です!とても基本的なこと...
-
VC++ 7.1 で メインウィンドウ...
-
【C++】vectorについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件によって別のクラスのイン...
-
c# ネットワークプログラム
-
ユーザーフォームのVBAエラー
-
excel vba グラフ データラベル...
-
C# フォームのShow()のオーバー...
-
VB.NETで、DLLを頂いたんですが...
-
c# Equalsメソッドについて
-
C# using の有効範囲
-
C#でstop()が使えない。
-
C#でVB.NETのReplaceコマンドを...
-
Eval関数を使いたい!ドキュメ...
-
VBA チェックボックスをオーバ...
-
FriendとPublicの違い。。。
-
イベントにAddHandlerされてい...
-
既定のコンストラクタがない?
-
ダイアログ表示時にチェックボ...
-
(UWSC) 「#32770」の意味わかり...
-
【ASP.NET】 独自で作成したク...
-
エディットコントロールでEnter...
-
クラスのアドレスを引数として...
おすすめ情報