我在delphi中做一个程序,用到了win32-API,但其中一个API只有在98下有,2000下没有,但我的系统是2000,所以编译时就老是报错,我是不是一定要到98系统上去装一个delphi编译?

解决方案 »

  1.   

    冒点风险:找到98下的API在哪个库里面,要是不知道就用winasm反汇编一下你的EXE。然后将这个库拷到win2000D的SYSTEM32文件夹下面,要是有同名的就不好办咯,不能覆盖(要是反过来,在98下用2K的文件来覆盖同名文件的风险小些)。要是真的有同名文件存在,只要不是kernel32,gdi32,user32这些核心库的话 你就备份原库文件然后覆盖,不过估计不行。
    哎 还是别用不能跨平台调用的函数啦 想别的办法吧
      

  2.   

    用动态加载dll中的函数LoadLibrary(),GetProcAddress(),如果加载失败就不提供该功能。。
    但是你要彻底调试这个程序看来还是要到win8下去调试了。。
      

  3.   

    1、显示调用那个dll,可以避免编译错误;
    2、使用条件编译。
      

  4.   

    没有办法,除非想 delphi_xizhousheng(西周生)所说的一样,但那样做很不好,你用的什么api?