
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- フリーソフト cygewf-2.dllがない、と表示され、ダウンロードしたファイルが動作しない 2 2023/03/27 11:05
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- その他(OS) OBSが起動できません 3 2022/03/30 12:21
- その他(コンピューター・テクノロジー) パソ粥が壊れてしまい。 新しく買ったパソコンに Amplitued5 Max をダウンロードインスト 1 2022/05/22 00:33
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- その他(ソフトウェア) MMD PMXエディタ プラグイン 押せない はじめまして。MMDについて質問させていただきます。 7 2022/05/04 15:53
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
このQ&Aを見た人はこんなQ&Aも見ています
-
VB.NETで参照設定したDLLの修正反映
Visual Basic(VBA)
-
IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ
その他(プログラミング・Web制作)
-
VB.NETでDLLを読み込ませる時にエラーがでる
Visual Basic(VBA)
-
-
4
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
5
Visual Studio 「AnyCpu」について
C言語・C++・C#
-
6
VBから参照できないCのDLLを使用する方法
Visual Basic(VBA)
-
7
API関数(DLL)の呼び出しにおいて、DLLの格納場所は?
Visual Basic(VBA)
-
8
CSVファイルをBULK INSERTでSQLserverに読み込むことは可能?
その他(データベース)
-
9
VB.netでDLLを読み込んで実行する際に、スタックを不安定にしていますというエラーが出ます。
Visual Basic(VBA)
-
10
regsvr32.exe による DLLの登録について
UNIX・Linux
-
11
CloseとDisposeの違い
Visual Basic(VBA)
-
12
VBの「As String * 128」とは?
Visual Basic(VBA)
-
13
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
-
14
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
15
イベントにAddHandlerされているか判断
Visual Basic(VBA)
-
16
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# using の有効範囲
-
MSDNのリファレンスの見方が分...
-
System.Net.HttpWebRequest、も...
-
VBA チェックボックスをオーバ...
-
クラス内にWin32APIのコールバ...
-
DataContextについて
-
Serialize で困ってます!!
-
内部クラスの処理
-
イベントにAddHandlerされてい...
-
最小化したフォームを元に戻す
-
オブジェクト指向 集約の実装...
-
既定のコンストラクタがない?
-
フォーム間でのオブジェクト又...
-
VC++ リストボックスにデータを...
-
VB6で作成したDLLをVC6で使用す...
-
DataGridViewがクラッシュする
-
特定のビューへのポインタ取得...
-
スプラッシュコントロールの挿...
-
(UWSC) 「#32770」の意味わかり...
-
c# 関数とメモリ消費
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームのVBAエラー
-
VB.NETで、DLLを頂いたんですが...
-
c# ネットワークプログラム
-
excel vba グラフ データラベル...
-
条件によって別のクラスのイン...
-
C# using の有効範囲
-
Eval関数を使いたい!ドキュメ...
-
C#でVB.NETのReplaceコマンドを...
-
C# でフォームやクラスを利用...
-
c# nullは空集合として扱かって...
-
C# フォームのShow()のオーバー...
-
MSDNのリファレンスの見方が分...
-
ConsoleApplicationから別プロ...
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
イベントにAddHandlerされてい...
-
ダイアログ表示時にチェックボ...
-
エディットコントロールでEnter...
-
(UWSC) 「#32770」の意味わかり...
-
オブジェクト型の変数が定義さ...
おすすめ情報