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

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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 --

Back to contents

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航