gpt4 book ai didi

delphi - "SetupOpenInfFile"在 Delphi2010 中出现访问冲突错误

转载 作者:行者123 更新时间:2023-12-03 15:49:00 24 4
gpt4 key购买 nike

在 Delphi 2010 中使用以下行代码时,出现“访问冲突”错误,但相同的代码在 VC++ 中工作正常。

Delphi 2010 代码是

var
hMyInf : HINF;
begin
hMyInf := SetupOpenInfFile('.\\DIGIMHID.INF','Mouse', INF_STYLE_WIN4,Nil);

VC++代码是

hMyInf = SetupOpenInfFile(".\\DigimHID.inf", "Mouse", INF_STYLE_WIN4, NULL);

请帮我解决这个问题。谢谢大家。

最佳答案

在使用 SetupAPI.pas 中的任何方法之前调用 LoadSetupAPI

编辑,提供一些背景:正如 David 在他的回答中和我在评论中同时写的那样,该错误可能是由调用未初始化的方法指针引起的。对我来说,第一个提示是错误消息,即访问冲突:如果相当于访问冲突的内容来自 Windows 本身,则称为运行时错误 216。代码非常简单,只使用常量和方法调用。常量无法生成 AV,因此错误必须来自方法本身,或者来自调用该方法。

由于提供的 Delphi 声明显示了“函数类型”,我怀疑 SetupOpenInfFile 实际上是一个方法指针,而不是 import 方法。这些指针需要以某种方式进行初始化。搜索 SetupAPI.pas (感谢 google 提供链接,因为我不使用 JEDI 库)我很快发现它是从 LoadSetupAPI 分配的。我的第一个想法:不是从 initialization 部分调用 LoadSetupAPI 吗?事实并非如此,因此需要从代码中调用它。 问题已解决。

关于delphi - "SetupOpenInfFile"在 Delphi2010 中出现访问冲突错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com