我有德尔福7使用HID Controller但现在我需要用它于2010年德尔福(许可问题),但我发现这个HIDController的一些兼容性问题在此德尔福2010年该库的应用程序是JEDI项目的一部分。德尔福使用HIDController 2010
我注意到从使用这个库(JvHidDeviceController组件)与2010年德尔福和Win7的人一些问题。也许有人遇到同样的问题可以帮助我。我现在可能我不知道如何。从本网站使用 包:
我有德尔福7使用HID Controller但现在我需要用它于2010年德尔福(许可问题),但我发现这个HIDController的一些兼容性问题在此德尔福2010年该库的应用程序是JEDI项目的一部分。德尔福使用HIDController 2010
我注意到从使用这个库(JvHidDeviceController组件)与2010年德尔福和Win7的人一些问题。也许有人遇到同样的问题可以帮助我。我现在可能我不知道如何。从本网站使用 包:
这是工作代码D2010 HIDController DPK
而从这个网站替换版本JvHidControllerClass.pas:Modified source file
主要问题是字符串并AnsiString类型声明,所以此文件解决了这种不兼容问题。
P.S.使用帖子中文件的zipped version。
显然,“设备无法打开”的问题(纳塔利娅)也与Unicode字符做。回答1中指出的HIDController的新版本不能解决此问题。
解决方案: 在 “PAnsiChar” 在 “PChar类型” 代替变化TJvHIDPnPInfo.Create(单元JvHIDController.pas)的最后一个参数的类型。不要忘记改变例程被“调用”的类型转换。
p.s.答案1中“修改后的源文件”和“压缩版本”的链接已经失效。
德尔福2010年宣布为字符串的所有瓦尔都是unicode的类型(宽字符串)。将早期版本的组件(Delphi 7)移植到新版本时,总是检查所有声明为字符串和pchar的变量。在新版本中,这个变量需要被声明为AnsiString和PAnsyChar,这很可能会解决你的问题。当然,你必须确定你是否调用任何dll函数来调用正确的_W(当用宽字符串参数调用函数时)或_A时使用AnsiString。然而,另一件要提到的是检查HID的文档以查看接受的参数类型,并在较新的delphi版本中正确使用它们。我从头开始编写我的hid控制器(类似),到那时还没有现成的控制器,当然,当我将它移植到Delphi2010时,不同的字符串类型是我的主要问题。当我编写WinUsbController来使用WinUSB驱动程序时,情况相似。必须阅读手册(MSDN),检入标题(.h)并阅读delphi帮助(字符串)以匹配正确的数据类型。
你有使用相同版本的德尔福2010年,你已经使用了7?它们可能不兼容。 – 2011-06-07 21:37:45
什么是“一些兼容性问题”?我们无法从这里看到你的屏幕,并且你没有问过任何可以在这里回答的问题。你提到“同样的问题”,但是由于你没有说出什么问题,没有人可以说他们是否面临相同的问题。在任何人都可以帮助你之前,你需要提供更多信息。 – 2011-06-07 22:11:26
我只是使用在Delphi 7和2010..XE中工作的单元'JvHidControllerClass'。它位于我编译并安装到新IDE中的HidController.dpk包中。自述文件显示“1.0.34引入了几种与Windows版本相关的方法”。所以这应该给你的版本。 – 2011-06-08 11:02:55