这是由于delphi6, delphi7和delphi5对数据的定义方式不同造成的!
在D6, D7的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中要注意有很多问题要手工
去纠正!
评论