少し読んだら、私の32ビットDelphiアプリケーションは、Windows 7や他の64ビットWindowsシステム上でlibusb 64ビットドライバを使用できなくなること、そして私と話すことができなくなることを心配しています。それらのシステム上のカスタムハードウェアデバイス。これは本当ですか?はいの場合、いくつかの回避策がありますか?私はこの写真の中で何かを逃していますか?Windows 64ビットでlibusbをDelphiで使用しますか?
答えて
WinUSBバックエンド(Windowsに含まれているMicrosoftドライバ)を含むlibusb 1.0では、 x86アプリケーション(C#アプリケーションで使用されるマネージC++ライブラリ)から。動作はx86プラットフォームとx64プラットフォームで同じです。
libusb 0.1(libusb-win32カーネルドライバを使用できる古いもの)については分かりませんが、1.0バージョンへのリンクポイントとしてはそれを使用していないようです。 (のWinUSBいくつかの制限がありますが、私は彼らに遭遇したことはありません)
正確にはそうは思わないでしょうか? 64ビットドライバをお持ちの場合、64ビットシステムで使用できます(ドライバは正常に動作し、適切に署名されているため)。 32ビットおよび64ビットの両方のアプリケーションは、IoctlやMMFファイルなどのさまざまな通信メカニズムを介してドライバを制御できます。質問は、コードのすべての部分が正しく書かれている場合ですが、この質問は任意のライブラリと任意のplatofrmに適用されます
32ビットアプリケーションから64ビットusblib dllを使用しているのは、そのような状況で他の種類のドライバアクセスが可能であるとは確信していません。だからこそ、私は自分の死を救うために援助を求めたのです。あなたの答えをありがとう。 – avra
@avraには32ビットのDLLがありませんか?そうであれば、それを使ってください。 32ビットのユーザーモードDLLは、正しく書き込まれていれば、64ビットドライバと通信します。ドライバベースの製品はすべてこのように動作します。 –
さて、物事は少し複雑になりました... 32ビットバージョンのDLL(libusb0_x86.dll)が32ビットのlibusb0.sysドライバを呼び出すlibusb 0.1のインカネーション(libusb-win32)を使用する必要があります。 64ビットバージョンのDLL(libusb0.dll)は、64ビットlibusb0.sysドライバを呼び出します。これはおそらく、32ビットDLLを呼び出すことは役に立たないことを意味します。私は誰かがこれを確認できるかどうか疑問に思います。このトピックに興味をお持ちいただきありがとうございます。 – avra
私はsucessfully libusb-win32を使用し1.0のlibusbいくつかの時点で
はのlibusb-win32のカーネルドライバをサポートしますが、特定の場合を除き、それは必要ありませんデルファイ32ビットアプリケーションを搭載した私のWin7 64ビットラップトップで。これまでのところ問題はありません。ドライバも署名されています(私の.infファイルのみが署名されていません)。
libusb-win32は、「古い」libusb APIを使用しています。
- 1. 64ビットWindowsではKERNEL64を使用しますか?
- 2. 64ビットWindows 7上でODBCの32ビット版を使用しますか?
- 3. Windows Vista 64ビットのコマンドラインからDelphi 2009でコンパイル
- 4. Delphi XE2:64ビットのアプリケーションで64ビットのDLLをデバッグ
- 5. 64ビットOSで32ビットSTSを使用できますか?
- 6. Pythonを32ビット用Windows XPを64ビットWindows 7マシンからpy2exeを使用
- 7. 64ビットWindowsで32ビットdllをインポート
- 8. は、64ビットWindows
- 9. 64ビットWindowsアセンブラデバッグ
- 10. Windows 7用Biopythonインストール64ビット
- 11. MongoDB Windows用ダウンロード10 64ビット
- 12. Windows 10用64ビットPython 2.7
- 13. Windows Server 2008 SP2 64ビットでライブラリを使用する際のエラー
- 14. Windows 7で32ビットシェル拡張を使用する64ビット
- 15. Windows Vistaでは32ビットまたは64ビットをお勧めしますか?
- 16. Windows 10でJavaプロセスで使用する最大ヒープサイズ64ビットJVMを実行する64ビットJVM
- 17. MSCAL.OCXはWindows 10(64ビット)のMS Access 2010(64ビット)で動作しません
- 18. WindowsのPerl:32ビットまたは64ビット?
- 19. com4j on Windows 64ビット
- 20. Windows 7(64ビット)でCPAN BerkeleyDBモジュールを使用
- 21. 64ビットPythonで32ビットdllまたはexeを使用できますか?
- 22. Windows XP(32ビット)およびWindows 7(64ビット)で実行するMakefileを使用してDLLを作成
- 23. は整数()キャストは、Delphi 64ビット
- 24. Windows 10でPython 32ビットを使用してCOMエラーが発生しました64ビット
- 25. バッチファイルを使用して32ビットDelphiアプリケーションから64ビットのフォルダ(System32)にアクセスするには?
- 26. Windows上でGIT 32ビットを64ビットにアップグレードするには?
- 27. Windows 2003で32ビットASP.NEt 3.5アプリケーションを実行する64ビット
- 28. Google Web Toolkitから64ビットまたは32ビットWindowsを検出
- 29. Windows Vista用コマンドラインSubversionクライアント64ビット
- 30. 64ビットWindows 7用Visual FoxProドライバ
WinUSPの継ぎ目がWinXP SP2以降にのみ存在するWin2KとWinXPをSP1でサポートする必要があります。 WinUSBは同時に複数のアプリケーションと通信することはできません。これは現在のアプリケーションでは問題ではありませんが、これが必要な将来のハードウェアにとっては問題になるかもしれません。私は物事を2回習得したくありません。また、WinUSBはWindows以外のオペレーティングシステムには存在しませんが、現在問題はありませんが、今後は問題になります。このすべてが私には普通のlibusb 1.0になったり、CDCクラスのようなものに動いたりします。あなたの答えをありがとう。 – avra
私の答えで指定されているように、あなたが実際にWinUSBドライバを使用しているのは、現在のコードがサポートしている唯一のものです(デバイスがHIDではなく、Linuxの場合を除き、なぜlibusb ?)。あなたの質問のリンクに「サポートされているシステムはWindows XPからすべてのWindowsプラットフォームです」と指定されているためです。 –
@avra Windows 2000の64ビット版またはXP SP2がないため、これらのプラットフォームで64ビット版を心配するのはなぜですか? –