如何将C/C++程序转译成Delphi(七)

类别:Delphi 点击:0 评论:0 推荐:

Here is a real-world example from the winnt.h, which is not possible to translate to a native enumerated type:

// // Start Type // #define SERVICE_BOOT_START 0x00000000 #define SERVICE_SYSTEM_START 0x00000001 #define SERVICE_AUTO_START 0x00000002 #define SERVICE_DEMAND_START 0x00000003 #define SERVICE_DISABLED 0x00000004 // // // typedef enum _CM_SERVICE_LOAD_TYPE { BootLoad = SERVICE_BOOT_START, SystemLoad = SERVICE_SYSTEM_START, AutoLoad = SERVICE_AUTO_START, DemandLoad = SERVICE_DEMAND_START, DisableLoad = SERVICE_DISABLED } SERVICE_LOAD_TYPE;

The ordinal values of the items in the enumeration SERVICE_LOAD_TYPE depend on the constants declared above it. This is not possible in Delphi. The only way to translate it is:

// // Start Type // CONST SERVICE_BOOT_START = $00000000; SERVICE_SYSTEM_START = $00000001; SERVICE_AUTO_START = $00000002; SERVICE_DEMAND_START = $00000003; SERVICE_DISABLED = $00000004; // // // CONST BootLoad = SERVICE_BOOT_START; SystemLoad = SERVICE_SYSTEM_START; AutoLoad = SERVICE_AUTO_START; DemandLoad = SERVICE_DEMAND_START; DisableLoad = SERVICE_DISABLED; TYPE TServiceLoadType = DWord;


Back to contents

本文地址:http://com.8s8s.com/it/it6024.htm