前几天用C做了个函数库给程序部,程序部那边把库里的所有声明原封不动转为Delphi的语法以便在Delphi中调用,结果老是莫名其妙出问题,后来把他们的程序拿过来调试,才发现是枚举惹的祸···
原来在Delphi中枚举类型的大小为一个字节,而32位系统下C中的枚举类型通常为4四个字节。当Delphi调用C的函数时,那些枚举类型的参数只有一个字节是正确的值,其它三个字节为错误数据,这样将导致函数参数经常不正确。后来在Delphi中全部把枚举类型的函数改为Integer类型才解决问题,看来用C编写函数库要小心使用枚举···
Delphi和C的枚举兼容问题
最新推荐文章于 2022-04-11 16:43:10 发布