Delphi和C的枚举兼容问题

来源:互联网 发布:网络存储管理 编辑:程序博客网 时间:2024/05/18 02:52

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