簡體   English   中英

在 Delphi 2010 上使用 HIDController

[英]Using HIDController on Delphi 2010

I have an application that uses HID Controller on delphi 7 but now I need to use it on Delphi 2010(license problems) but I've found some compatibility problems of this HIDController in this delphi 2010. This library is part of Project JEDI.

我注意到人們在 Delphi 2010 和 Win7 中使用這個庫(JvHidDeviceController 組件)的一些問題。 也許遇到同樣問題的人可以幫助我。 我現在有可能我只是不知道怎么做。

這是 D2010 的工作代碼:使用來自此站點的 package: HIDController DPK

並將 JvHidControllerClass.pas 替換為來自此站點的版本:修改后的源文件

主要問題在於字符串和 AnsiString 聲明,所以這個文件解決了這個不兼容問題。

PS 使用帖子中文件的壓縮版本

顯然“設備無法打開”問題(Natalia)也與 unicode 字符有關。 答案 1 中指向的新版本 HIDController 並沒有解決這個問題。

解決方法:將“ PAnsiChar ”中的TJvHIDPnPInfo.Create (單位JvHIDController.pas)的最后一個參數的類型改為“PChar”。 不要忘記更改“調用”例程的類型轉換。

ps答案1中“修改后的源文件”和“壓縮版本”的鏈接已失效。

在 Delphi 2010 中,所有聲明為字符串的變量都是 unicode 類型(寬字符串)。 將組件從早期版本(Delphi 7)移植到較新版本時,始終檢查所有聲明為字符串和 pchar 的變量。 在較新的版本中,需要將此變量聲明為 AnsiString 和 PAnsyChar,這很可能會解決您的問題。 當然,您必須確保是否調用任何 dll 函數來調用正確的 _W(使用寬字符串參數調用 function 時)或使用 AnsiString 時的 _A。 但是要提到的另一件事是檢查 HID 的文檔以查看接受哪些類型的參數並在較新的 delphi 版本中正確使用它們。 我從頭開始編寫了我的隱藏 controller (類似),而當時還沒有現有的,當然,當我將它移植到 Delphi2010 時,不同的字符串類型是我的主要問題。 當我編寫 WinUsbController 以使用 WinUSB 驅動程序時,情況類似。 必須閱讀手冊 (MSDN)、簽入標題 (.h) 並閱讀 delphi 幫助(用於字符串)以匹配正確的數據類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM