株式会社 タートル工業
〒300-0842
茨城県土浦市西根南1丁目12番4号
E-mail:info@turtle-ind.co.jp
FAQ

サポート外の開発ツール(C,C++)でTUSBシリーズのDLLを動的に使用するソースファイルの記述方法

2002/08/19 株式会社タートル工業

ここでご説明する方法はサポート範囲外です。TUSB製品全てで動作はテストされておりません。下記方法での不具合には対応できませんし、御質問にもご回答できません。ご了承ください。


(1)

DLLを使用するためにLoadLibraryでDLLをロードします。

たとえばDLLの名称が"TUSBSSW.DLL"の場合

HMODULE hModule; //モジュールのハンドル

hModule = LoadLibrary("TUSBSSW.DLL");

などとします。

(2)

GetProcAddressを使用して各関数のポインタを取得します。

たとえば関数のプロトタイプ(付属のヘッダファイル参照)が

short Tusbs01sw_Device_Open( short );

void Tusbs01sw_Device_Close( short );

shor Tusbs01sw_Out(id,char);

の場合には、

short ( WINAPI * Tusbs01sw_Device_Open)( short );

void ( WINAPI * Tusbs01sw_Device_Close)( short );

short ( WINAPI * Tusbs01sw_Out)( short,char);

Tusbs01sw_Device_Open = (short (WINAPI * )(short))GetProcAddress(hModule,"Tusbs01sw_Device_Open");

Tusbs01sw_Device_Close = (void ( WINAPI * )( short ))GetProcAddress(hModule,"Tusbs01sw_Device_Close");

Tusbs01sw_Out = (short ( WINAPI * )( short ,char ))GetProcAddress(hModule,"Tusbs01sw_Out");

などとします。

(3)

先ほどのポインタを使用して関数をコールします。

たとえば

Tusbs01sw_Device_Open(id);

などとします。

(4)

アプリケーションの終了時か、DLL関数の使用が終了したら

FreeLibraryでDLLを開放します。

たとえば

FreeLibrary(hModule);

などとします。

 

アプリケーション動作中常にDLL関数をコールするのであれば、

LoadLibraryは通常アプリケーションの開始時、FreeLibraryは終了時に実行します。

Device_OpenおよびDevice_Closeについても同様です。

モジュールのハンドル値はFreeLibraryを行うまで保持しなければなりません。

上記は一例です。同様の方法で他のTUSB製品のドライバにも対応可能です。

上記例では戻り値のチェックをしておりませんが、必ず戻り値をチェックしてください。

ここに書かれている方法は参考のための資料です。TUSB製品全て

  で動作はテストされておりません。上記方法での不具合には対応

  できませんし、御質問にもご回答できません。ご了承ください。


FAQに戻る