dポイントプレゼントキャンペーン実施中!

VB.NETでプログラムを作成しているのですが、
DLLを頂きました。
このDLLをプログラムで使いたいのですがよくわかりません。
(1)DLLは実行ファイルにおけばいいんですよね?
(2)DLLを参照しろっていう設定は必要ですか?
(3)DLLには、プロパティ、メソッド、イベントとあるみたいなんですが、これらを宣言しないといけないと思うのですがどうやればいいのでしょうか?
(4)下のような資料もらったのですがVBcnvというのが定義されていないとエラーがでるのですがどうやって宣言するのでしょう?
private <任意名> as VBcnv

(5)libファイルも一緒にあったのですが、どういう風に使えばいいのでしょうか?何につかうのでしょうか?
すいません、どなたかお助けを~

A 回答 (7件)

> 参考資料にはVB6.0のdll追加方法が書いてありまして、それには、参照設定という画面が書いてあります。



それならCOMですね。

>(1) 

インストーラが用意されていないのであれば、手動でレジストする必要があります。

>(2) 

VS.NETのプロジェクトがCOMを参照する必要があります。

>(3)
必要ありません。
VS.NETのプロジェクトがCOMを参照すれば自動的にラッパークラスが作成されます。
オブジェクトブラウザでプロパティ、メソッド、イベントを確認できます。

>(4)

private <任意名> as new ラッパークラス名

>(5)

謎。
    • good
    • 0
この回答へのお礼

ありがとうございました。参照設定で参照するようにしました。プロパティに設定値をいれてみようとするとインスタンスがないといわれエラーがでてしまいました。もうすこし勉強してみます。

お礼日時:2005/07/01 10:53

VBcnv.名前とゆうことは、DLLから返ってくる答えが、構造体(typeで宣言してある)のポインタ(変数の置かれている場所)としてもどってくるとおもいます。


構造体の定義もしないとだめだと思います。

例として、VBcnvがDVDプレーヤーだとします。
名前とゆうのは、DVDプレーヤーのなかのplayボタンという風に、VBcnv.のなかにいろいろな変数が定義されているとゆうことです。(わかりにくいかもしれませんが)

>DLLは市場にでているようなDLLではなく、ファイル変換を手助けしてくれるようなDLLなのです。

自分で作ったものでも手続きは同じです。
    • good
    • 0
この回答へのお礼

ありがとうございます。イメージはちょっとわかりました。勉強しなおしてみます。

お礼日時:2005/07/01 10:54

#1 の者です。



> Private Shared [Sub | Fucntion] [識別名](ByVal [引数] As [型]) [As [型]]
> End [Sub | Function]
> どっちでもいいのでしょうか?

大切なのはその上にあった属性なんですが...
DllImport 使った方が良いですね。

http://www.microsoft.com/japan/msdn/library/defa …
    • good
    • 0
この回答へのお礼

ありがとうございました。難しくてよくわからなかったのですが、勉強してみます。

お礼日時:2005/07/01 10:48

No2です。


dllの中の関数を使うだけなんですよね?
でしたらDll名、関数名、引数、戻り値があればさっき書いたように宣言して普通にソースの中で使えます。
VBcnvがDll名なんでしょうか?

dllを使う為の宣言とプロパティ、メソッド、イベントは関係ないと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。やってみたのですが、エラーがでてしまって、勉強してみます。

お礼日時:2005/07/01 10:51

つかう、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追加方法が書いてありまして、それには、参照設定という画面が書いてあります。

補足日時:2005/06/29 16:22
    • good
    • 0

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側にあると思うんですが、イベント発生時に何かやりたいとした場合どうするんでしょうか?

補足日時:2005/06/29 16:04
    • good
    • 0

こんにちは、じゃんぬねっと です。



この 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]
どっちでもいいのでしょうか?

補足日時:2005/06/29 16:18
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A