我的动态库中调用了SetupDiGetClassDevs函数,这是一个API函数,声明在SetupApi.h中。
在2k下,调用动态库,当调用SetupDiGetClassDevs时,完全没问题。但是在Win98下,
当调用到SetupDiGetClassDevs时,返回-1,错误码为120,查了一下意思是“
此功能仅在win32模式下有效”。
有没有和我遇到相同问题的朋友,你们是怎么解决的?
在2k下,调用动态库,当调用SetupDiGetClassDevs时,完全没问题。但是在Win98下,
当调用到SetupDiGetClassDevs时,返回-1,错误码为120,查了一下意思是“
此功能仅在win32模式下有效”。
有没有和我遇到相同问题的朋友,你们是怎么解决的?
SetupDiGetClassDevs在98下,如果不是通过dll调用的,而是用应用程序直接调用的话,是没有问题的
,这一点我已验证。所以,这个api在98下应该是支持的,并且msdn上将的也是支持的。
不是找不到SetupDiGetClassDevs这个函数,编译、连接都能过,说明能找到。
在运行时,调用SetupDiGetClassDevs(NULL,NULL,NULL,DIGCF_PRESENT|DIGCF_ALLCLASSES)返回
-1,所以是运行时出错。
setupapi.lib肯定要引入工程的,否则连接时会出错的。
但是,知道把对这个函数的调用放到动态库中,在来调用动态库就会有问题,跟踪表明,SetupDiGetClassDevs的执行出错了。真是没道理啊!
98下调用dll和2k、xp下究竟有什么不同呢?
在98下,反而不能定义UNICODE。所以在编译时通过工程设置,决定是否定义UNICODE就可以了。
发分。谢谢各位了。