掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SDK 付属の DLL を利用するには? (ID:119505)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> Declare Function ほにゃらら "hoge.dll" (ほにゃらら) As ほにゃらら > こんな感じになっています。このほにゃにゃらにあたる部分に > どう書くかはどうやって調べればいいのでしょうか? もし、C/C++言語用のヘッダファイル(*.h)があれば、それを見て下さい。 その内容を、VBの Declare Function 関数名 "dll名" (引数定義) As 戻り値 の構文に置き換えて行くことになります。 たとえば、簡単なところで「Beep」というAPI関数がありますが、 これは、Windows Platform SDK の WINBASE.H ファイルの中で、 WINBASEAPI BOOL WINAPI Beep( DWORD dwFreq, DWORD dwDuration ); のように定義されています。あるいは、SDKのドキュメントに、 BOOL Beep( DWORD dwFreq, // 音の周波数 DWORD dwDuration // 音の持続時間 ); と書かれていますので、こちらを見て頂いても良いでしょう。 まず、最初の BOOL は 戻り値の型。その後の Beep は関数名です。 そして括弧の中には、引数定義で、引数の型(DWORD)と 引数名(dwFreq,dwDuration)が並んでいます。ここまでは良いですよね。 ここで、VB6のデータ型への置き換え作業が必要になります。 これについては、下記の記事などが役にたつでしょう。 http://hira.hopto.org/win32api/convert01.htm http://www.int21.co.jp/pcdn/vb/onepoint/knvol083.html で、上記と付き合わせて型を書き換えると、 BOOL型 → ByVal Longに相当 DWORD型 → ByVal Longに相当 という事がわかりますので、結果として、 Declare Function Beep "dll名" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long のようになるわけです。なお、DLL名は Kernel32.dll です。 # DLL名については、ヘッダファイルからはわかりませんので、 # 他の資料をあたるなどして、別途調査する必要があります。 お使いのSDKの内容がわからないので、何とも言えませんが、 定義が単純なAPIなら、上記のようにして置き換えられると思います。 ただ、実際にはこんなに単純に置き換えられる物ばかりではありません。 中には、ある程度のCの知識とVBの知識が揃っていないと、 呼び出しにくいAPIもありますので、ある程度、APIの使い方が 分かってきたら、書籍などで勉強してみてください。 # 個人的には、http://www.amazon.co.jp/exec/obidos/ASIN/4881357905 などがお勧め。 # 中〜上級者向けの本なので、読むには、ある程度の事前知識が必要ですが。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.