- ベストアンサー
VB2010でのAPIの使い方を教えてください
- VB2010にて、PCとUSBを介して繋がっている機器からデータのやり取りを行おうとしています。APIの仕様書には「API 使用時には ***.h をインクルードして使用してください→#include “***.h”」、「リンク時には、***.lib もリンクしてください」と書かれています。
- VB2010で使用するためのAPIは、機器メーカから***.dllという形で提供されています。VB6で作成されたサンプルソフトもありますが、VB2010ではそのまま使用することはできません。
- 具体的にプログラム上でAPIを利用するためには、USBポートのOpen/CloseやRead/Writeなどの関数を使用する必要があります。VB2010のプログラムには、API使用時に必要な***.hファイルをインクルードし、リンク時には***.libファイルもリンクする必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VB6のサンプルをVB2010に変換する。 http://msdn.microsoft.com/ja-jp/library/bszew91f.aspx http://msdn.microsoft.com/ja-jp/library/dd297706.aspx ただし、そのままでは動かないので調整が必要である。 特に、構造体に注意。 http://www.atmarkit.co.jp/fdotnet/dotnettips/026w32struct/w32struct.html
その他の回答 (1)
- nda23
- ベストアンサー率54% (777/1415)
標準モジュールで定義する場合 Public Declare Function 関数名 Lib "***" (~) As Long フォーム等クラスモジュールで定義する場合 Private Declare Function 関数名 Lib "***" (~) As Long 関数名は実際の名前です。LibでDLLのパスを指定しますが、システムフォルダ、 カレントフォルダの場合はディレクトリを省略できます。".DLL"はあってもなくても かまいません。 難しいのはパラメータの定義ですが、DWORDとかintならば 「ByVal xx As Long」 となります。文字列の場合は必ず「ByVal xx As String」です。構造体の場合は ポインタ渡しなので、「yy As 型名」となります。型はTypeで自作する必要がある でしょう。 こう言って「ああ、そうですか」と分かるくらいなら、苦労はありませんね。 C言語で言うデータ型がVBのどのような変数型に対応するか熟知していないと難しいので、 こういう作業に習熟していない人には無理かと思います。ヘッダファイルの定義内容を 具体的に記載してみてください。そうすれば答えも得られると思いますよ。