c#-C# 调用setupapi.dll里的方法出错

问题描述

C# 调用setupapi.dll里的方法出错

写的程序中调用了,如下代码
[DllImport("setupapi.dll", SetLastError = true)]
public static extern bool SetupDiEnumDeviceInfo(IntPtr lpInfoSet, UInt32 dwIndex, SP_DEVINFO_DATA devInfoData);
可是不知为什么,这段代码在我的笔记本上测试有问题,产生不了正常结果。我的笔记本是WIN7系统,但是到了XP系统上却运行的很正确。后来又到其它win7电脑上运行,依旧不正确,请问这是为什么?怎么把它改成通用的 ?或者改成win7可用也行。

解决方案

一个是UAC权限问题,要以管理员身份运行程序,一个是32bit/64bit的问题,驱动程序必须严格匹配版本,64bit没法装32bit驱动

解决方案二:

uac权限要注意,程序权限够吗
再看调用失败返回值

时间: 2024-08-26 03:35:15

c#-C# 调用setupapi.dll里的方法出错的相关文章

大哥大姐救救我吧,如何让webservices里引用的dll程序调用应用程序里的方法

问题描述 如何让webservices里引用的dll程序调用应用程序里的方法 解决方案 解决方案二:你直接引用了,实例化后就提示它里面的方法了啊解决方案三:实例化之后不久可以调用了,解决方案四:同意楼上解决方案五:ding解决方案六:ding解决方案七:实在不行就regsvr32注册下dll

c# dll回调-C# 主程序引用DLL,当DLL里的方法被调用时,回调给主程序。

问题描述 C# 主程序引用DLL,当DLL里的方法被调用时,回调给主程序. 主程序引用DLL,当DLL里的方法被调用时,回调给主程序.大概就是这样子.求大神代码.最好完整些有注释

如何用A.aspx页面里的按钮事件调用B.aspx里的方法,用别的方法实也可以(asp.net 2.0)在线等~~~~

问题描述 如何用A.aspx页面里的按钮事件调用B.aspx里的方法,我的环境是asp.net2.0的,或者用别的方法实现这个也可以. 解决方案 解决方案二:你把那个方法写在webService中就可以了,谁都可以用解决方案三:我的B.ASPX放了一个gridview同时也写了个方法获取gridview里的哪行被选中了,我就是要在A.ASPX页里调用哪行被选中了的这个方法.解决方案四:将方法抽取出来写在单独的一个cs文件里,需要的时候调用.解决方案五:可以嘗試用SessionB中選中行的時候給S

WEB如何在.html文件中调用C# App_code 里的方法或者.aspx文件并得到返回值?急!

问题描述 因为访问量大,页面采用生成的.html页,但.html页无法查询数据库,取得类似会员登录等等的动态信息,但.html页当中有多处要用到登录信息,请问如何才能在.html页中调用到C#的后台代码或者调用.aspx文件查询然后得到返回值?登录信息并非只是为了显示,如果是这样只要用一个iframe就可以了,通过cookie又不太方便,很多客户端对cookie支持不好,请大侠给个好点的方法,能直接调用.cs文件里的方法最好! 解决方案 解决方案二:通过js调用webservice返回数据进行操

请问在C#中如何调用ws2_32.dll里的WSAStartup方法呢?

问题描述 LPWSADATA对应的是什么数据类型呢?求高手解答 解决方案 解决方案二:是自己写的类吧?发代码解决方案三:[DllImport("ws2_32.dll")]publicstaticexternInt32WSAStartup(UInt16wVersionRequested,WSADATAlpWSAData);我是这么做的,但是调用的时候有错误解决方案四:报的是这个错误WSAStartup"的调用导致堆栈不对称.原因可能是托管的PInvoke签名与非托管的目标签名不

web用户控件调用.aspx页面里的方法_实用技巧

现在把此web用户控件添加到一.aspx页面中.要实现单击用户控件中的button控件把搜索出来的结果数据绑定到.aspx页面的gridview控件上去,如何实现呢? 如果gridview控件是放在.ascx文件中的话,那我们直接把搜索出来的数据绑定到它上面就行了.但现在gridview是放在.aspx文件里,也就是说web用户控件要如何才能访问母页面的控件,把数据绑定到母页面的控件上去? 解决方法: 1.先在.aspx页面的后台文件.aspx.cs中添加一个绑定数据的方法,代码如下: 复制代码

对于c# 调用c++ dll,用dllimport 方法,怎么同时调试,断点设好,跳不进c++ dll

问题描述 请教,这个问题急人啊 解决方案 解决方案二:dllimport这种方式调试没试过,引用dll可以调试,前提是dll是Debug方式编译的解决方案三:C#项目启用本机调试.解决方案四:试下改为本机调试···

java中调用GDAL DLL的实现方法_java

步骤:1.编译GDAL(编译过程忽略).2.将编译过后的动态链接库拷贝到{JAVA_HOME}\jre\bin目录下,如下图:   3.将编译过后的gdal.jar引入java工程,测试调用,代码如下: 复制代码 代码如下:       @Override    protected boolean doIsAvailable() throws Throwable {        System.loadLibrary("gdaljni");        return true;   

关于C#调用C dll的问题

问题描述 publicstaticexternintDesEncrypt(byte[]key,byte[]InBuf,byte[]OutBuf,intBufLen);byte[]pubkye=ASCIIEncoding.ASCII.GetBytes("23@44#55#55&*$@56%fg&key");byte[]Keys=hextobyte(uncompress);intblen=0;byte[]buffer=newbyte[128];intErr=DesEncry