none
XP系统使用Vista的API函数的问题 RRS feed

  • 问题

  • 我在XP系统下,用VS2008编程,用了Vista的API函数,例如SleepConditionVariableSRW,在运行时候,提示找不到接入点在kernel32.dll中。有什么方法可以解决吗?能在VS2008中配置添加Vista的kernel32.dll吗?谢谢!

    2008年11月25日 9:18

答案

全部回复

  • 使用条件编译过滤掉vista专有的函数
    2008年11月25日 16:42
    版主
  • 你编写vista专用的程序似乎要在vista下编译才行哦
    2008年11月26日 1:45
  • 在XP下应该避免调用Vista的API函数。除非在XP下你能包含这些函数。

     

    2008年11月26日 2:17
    版主
  • 能透过升级Windows的SDK来解决吗?没有Vista系统,我只是想测试下几个API函数。

    2008年11月26日 7:29
  • 不可以
    解决方法我在第一个回复里面已经说了,使用条件编译。
    2008年11月26日 14:08
    版主
  • VS 2008 的工程,一般都会有个targetver.h的头文件,默认会按照您当前操作系统的环境设置版本。您需要先修改这些宏定义的值。然后编译时,编译器就会报告哪些API不可以使用了。

    #ifndef WINVER                          // Specifies that the minimum required platform is Windows Vista.
    #define WINVER 0x0500           // Change this to the appropriate value to target other versions of Windows.
    #endif

    #ifndef _WIN32_WINNT            // Specifies that the minimum required platform is Windows Vista.
    #define _WIN32_WINNT 0x0500     // Change this to the appropriate value to target other versions of Windows.
    #endif

    #ifndef _WIN32_WINDOWS          // Specifies that the minimum required platform is Windows 98.
    #define _WIN32_WINDOWS 0x0500 // Change this to the appropriate value to target Windows Me or later.
    #endif

    #ifndef _WIN32_IE                       // Specifies that the minimum required platform is Internet Explorer 7.0.
    #define _WIN32_IE 0x0550        // Change this to the appropriate value to target other versions of IE.
    #endif

    2008年11月27日 4:50
    版主
  •  

    感谢楼上各位的解答!希望以后能够合作愉快哈哈:)
    2008年11月28日 13:31