在接口中加入: uses  Windows;试试!
因为从错误的信息来看,好像是unit windows有问题。

解决方案 »

  1.   

    D5的第三方控件可能用到了Vcl50而D6中是Vcl60
      

  2.   

    这样试一试,在用到第三方控件的单元里定义:
    type
      DWORD = Cardinal;
      

  3.   

    如果没有第三方控件的话应该报错
    单元不存在啊
    我说的错只是其中一个
    还有
    [Fatal Error] jcjs.dpr(100): Unit Windows was compiled with a different version of types.DWORD
    [Fatal Error] jcjs.dpr(100): Unit Variants was compiled with a different version of types.PSmallInt
    [Fatal Error] jcjs.dpr(100): Unit Classes was compiled with a different version of types.TPoint
    [Fatal Error] jcjs.dpr(100): Unit Graphics was compiled with a different version of types.TPoint
    [Fatal Error] jcjs.dpr(100): Unit Math was compiled with a different version of types.TValueRelationship
    [Fatal Error] jcjs.dpr(100): Unit StdCtrls was compiled with a different version of types.TRect
    [Fatal Error] jcjs.dpr(100): Unit ExtCtrls was compiled with a different version of types.TRect
    [Fatal Error] jcjs.dpr(100): Unit Dialogs was compiled with a different version of types.TRect
    类似的全是这种错!
      

  4.   

    我觉得应该不是第三方控件的问题
    我用delphi5新建了一个工程,里面加
    了我用到的第三方控件,在delphi6里没错!
      

  5.   

    回复人: chendaiyin(freeman)说的挺对
      

  6.   

    当然是用了第三方控件的。准确的说是调用了delphi5的专有文件
      

  7.   

    这是由于delphi6和delphi5对数据的定义方式不同造成的!
    在6的windows单元中
       DWORD = Types.DWORD;在5的windows单元中
       DWORD = LongWord;
    在d5中是直接定义了
    而在d6中是用types这样一个单元定义所有的数据类型的
    在d6的types单元中
    DWORD = LongWord;所以你出现这种情况是因为当编译器去找types单元时
    没有找到正确的types单元
    可能是你的搜索路径中有比delphi的库路径优先级更高的某个路径中
    定义了某个types单元,这在d5中是不会出错的
    因为d5的库中没有types这个单元,但在
    d6中,就会出现以上的错误!
    解决的办法是找到重名的types单元,重命名!附:给自己做的单元文件命名,最好加上个标志,比如
    MyTypes这样的命名,就不会出现和系统单元冲突的现象!
    另外d6和d5有很大的不同
    比如 VarArrayOf 这个函数!
    在D5中是在System这个单元中
    但在D6中却新增了一个库Variants
    在这个单元定义了VarArrayOf这个函数
    所以D5的程序转到D6中要注意有很多问题要手工
    去纠正!
      

  8.   

    真是高手,
    一语道破天机!
    我的工程里自己的数据类弄是用types来命名的!
    给分,收好!