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

原创 2001年07月24日 13:30:00

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

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

Conversion Tutorial Draft 4 27 JANUARY, 1998by Andreas Prucha Contents Anatomy of a C Header Convers...
  • mysine
  • mysine
  • 2001年07月24日 13:22
  • 616

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

2.2. Unit dependencies Back to contents -->C and C++ use #include to include header files in another...
  • mysine
  • mysine
  • 2001年07月24日 13:26
  • 690

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

3.6. Structures, Records3.6.1. Simple StructuresC structures are similar to records in Delphi. Struc...
  • mysine
  • mysine
  • 2001年07月24日 13:31
  • 571

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

2.3. #defines as constantsC and C++ use #defines in several ways. In a C header file #define can be ...
  • mysine
  • mysine
  • 2001年07月24日 13:28
  • 581

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

4. MacrosIn C its possible to define macros. Macros are not available in Delphi, so functions must b...
  • mysine
  • mysine
  • 2001年07月24日 13:34
  • 599

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

7.2. Dynamic LinkingDynamic Linking is used to link the DLL at runtime.Handling Static and Dynamic L...
  • mysine
  • mysine
  • 2001年07月24日 13:45
  • 577

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

5. Conditionals###ToDoBack to contents -->Back to contents 6. Functions6.1. BasicsLets use the follo...
  • mysine
  • mysine
  • 2001年07月24日 13:35
  • 608

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

. Anatomy of a C HeaderBack to contents -->Back to contents ## to do2. Conversion Basics Back to con...
  • mysine
  • mysine
  • 2001年07月24日 13:24
  • 618

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

1. Anatomy of a C HeaderBack to contents -->Back to contents ## to do2. Conversion Basics Back to co...
  • mysine
  • mysine
  • 2001年07月24日 13:28
  • 1092

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

7. LinkingThere are two ways to link a DLL and import a function. Static linking is very easy and th...
  • mysine
  • mysine
  • 2001年07月24日 13:39
  • 655
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何将C/C++程序转译成Delphi(七)
举报原因:
原因补充:

(最多只允许输入30个字)