WEB开发网
开发学院软件开发Delphi 如何将C/C++程序转译成Delphi(二) 阅读

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

 2006-02-04 13:29:19 来源:WEB开发网   
核心提示:. Anatomy of a C Header Back to contents ## to do2. Conversion Basics 2.1. NamingThe naming in converted header files should follow Borland's style as far a
. Anatomy of a C Header


Back to contents

## to do

2. Conversion Basics

2.1. Naming

The naming in converted header files should follow Borland's style as far as possible. This means, keep the original names, but make them more Delphi-like.

How should the C names be translated into Delphi?

The C-PRogrammer usually uses upper case letters for type identifiers, e.g. MY_TYPE. In Delphi, a type identifier has a T-prefix followed by the name of the type in mixed (proper) case. Underscores are not used. The Delphi-like translation of the C type identifier MY_TYPE is TMyType.

In C older header files the pointer-type is named LPMY_TYPE. In translation to Delphi it should be PMyType to conform with Borland's style.

Constants are usually named identically to the original name, including upper case letters and underscores.

A few examples:

C Delphi-Translation


typedef struct _IMAGE_FILE_HEADER {
 Word Machine;
 WORD NumberOfSections;
 DWORD TimeDateStamp;
 DWORD PointerToSymbolTable;
 DWORD NumberOfSymbols;
 WORD SizeOfOptionalHeader;
 WORD Characteristics;
} IMAGE_FILE_HEADER,
*PIMAGE_FILE_HEADER;
type
 PImageFileHeader = ^TImageFileHeader;
 TImageFileHeader = packed record
  Machine: Word;
  NumberOfSections: Word;
  TimeDateStamp: DWORD;
  PointerToSymbolTable: DWORD;
  NumberOfSymbols: DWORD;
  SizeOfOptionalHeader: Word;
  Characteristics: Word;
 end;




#define LANG_NEUTRAL 0x00
#define LANG_AFRIKAANS 0x36
#define LANG_ALBANIAN 0x1C

#define LANG_ARABIC 0x01
#define LANG_BASQUE 0x2D
#define LANG_BELARUSIAN 0x23
#define LANG_BULGARIAN 0x02
#define LANG_CATALAN 0x03
#define LANG_CHINESE 0x04
CONST
 LANG_NEUTRAL = $00;
 LANG_AFRIKAANS = $36;
 LANG_ALBANIAN = $1C;
 LANG_ARABIC = $01;
 LANG_BASQUE = $2D;
 LANG_BELARUSIAN = $23;
 LANG_BULGARIAN = $02;
 LANG_CATALAN = $03;
 LANG_CHINESE = $04;

Tags:如何 程序 译成

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接