USBPIO-24 64bit OS 対応について

64bit OS から USBPIO-24 ボードを制御するためには 64bit 用の USB ドライバーが必要です。

ここ( USBPIO24_Driver64.zip ) からダウンロード(右クリック保存)してハードディスク上の任意の場所に解凍しCD-ROM のかわりに Driver64 フォルダーを指定してインストールしてください。
製品 CD-ROM 付属の ドライバーは 64bit OS では動作しません。

なお x64 では mpusbapi.dll が正しくインストールされない場合があるようですので、実行ファイル ( EXE ) と同じフォルダーにコピーして お使いください。

・DLL について

mpusbapi.dll は USB ドライバー( 64bit 版は mchpusb64.sys )をアプリから簡単に呼ぶだめの仕掛け( 関数をカプセル化したDLL )で これを経由して USB ドライバーを呼び出します。
64bit パソコンでは USB ドライバーそのものは 64bit 版でなければなりませんが、アプリは 32, 64 どちらからでもドライバーを呼ぶ ことができます。 

しかし現在DLL が32bit 版しかないため 32bit のアプリ からしか呼び出すことができません。
(64bit アプリから 32bit DLL を呼び出すとエラーになります)

・ したがってユーザー様のプログラムで mpusbapi.dll を使って USBPIO24 を 制御する場合、 64bit 環境でもアプリは x86( 32bit アプリ)として コンパイルしてください。
  USB アプリを 32bit( x86 ) でコンパイルする方法を VB.NET の場合について 以下に説明します。

  ・VB プロジェクトを立ち上げます。
  ・「プロジェクト」メニューの一番下の「xxx のプロパティー」を開きます。
  ・左の「コンパイル」タブをクリックして「詳細コンパイルオプション」
   ボタンをクリック。
  ・下の「ターゲットCPU」から 「x86」を選択。
  ・「OK」ボタンをクリック。

 これで「ビルド」メニューでリビルドすれば 32bit アプリでコンパイルされます。

・VBで制御プログラムを作成する場合、 DLL の関数定義は付属のサンプルプログラム USBPIO24Test3 のように

  Public Declare Ansi Function MPUSBOpen( ・・・・

のように Ansi で定義してください。 Auto にすると引数のマーシャリングが正しくおこなわれず、エラーになることがあるようです。

以上