ette
LOGPEN - > TLogPen
LONG - > LongInt
LONG DOUBLE - > Extended
LONG INT - > LongInt
LPSTR - > PChar
LPWSTR - > PWideChar
MAT2 - > TMat2
MDICREATESTRUCT - > TMDICreateStruct
MEASUREITEMSTRUCT - > TMeasureItemStruct
MENUITEMTEMPLATE - > TMenuItemTemplate
MENUITEMTEMPLATEHEADER - > TMenuItemTemplateHeader
METAFILEPICT - > TMetaFilePict
METAHEADER - > TMetaHeader
METARECORD - > TMetaRecord
MINMAXINFO - > TMinMaxInfo
MOUSEHOOKSTRUCT - > TMouseHookStruct
MSG - > TMsg
MULTIKEYHELP - > TMultiKeyHelp
NCCALCSIZE_PARAMS - > TNCCalcSize_Params
NEWTEXTMETRIC - > TNewTextMetric
OFSTRUCT - > TOFStruct
OUTLINETEXTMETRIC - > TOutlineTextMetric
PAINTSTRUCT - > TPaintStruct
PALETTEENTRY - > TPaletteEntry
PANOSE - > TPanose
PATTERN - > TPattern
POINTFX - > TPointFX
PSTR - > PChar
PWSTR - > PWideChar
RASTERIZER_STATUS - > TRasterizer_Status
RGBQUAD - > TRGBQuad
RGBTRIPLE - > TRGBTriple
SEGINFO - > TSegInfo
SHORT - > SmallInt
SHORT INT - > SmallInt
SIZE - > TSize
TEXTMETRIC - > TTextMetric
TPOINT - > TPoint
TRECT - > TRect
TTPOLYCURVE - > TTTPolyCurve
TTPOLYGONHEADER - > TPolygonHeader
UINT - > Word
UNSIGNED - > Word
UNSIGNED CHAR - > Byte
UNSIGNED INT - > Word
UNSIGNED LONG - > LongInt(DWORD)
UNSIGNED LONG INT - > LongInt
UNSIGNED SHORT - > Word
UNSIGNED SHORT INT - > Word
VOID* - > Pointer
WINDOWPLACEMENT - > TWindowPlacement
WINDOWPOS - > TWindowPos
WNDCLASS - > TWndClass
WORD - > Word
三:在Delphi中直接链接C语言的OBJ文件.
这种方法的好处在于最终EXE不用带任何外部文件.也不用对C语言过于熟悉.
我们都知道,代码在编译成可执行文件(或DLL,OCX文件,下同)之前,都必须得先生成OBJ文件(DELPHI一般是DCU文件,但也可以通过编辑编译选项生成OBJ文件),然后把OBJ文件和资源文件(*.RES)链接成最终的可执行文件.利用这个方法,我们可以直接把OBJ文件链接到我们的程序里面.
不过需要注意的是,编译器不同,生成的OBJ文件也不一样.Microsoft的编译器生成的OBJ文件是COFF格式,而Borland的C++Builder生成的是OMF格式.因为我们需要在Delphi中链接,所以必须使用CBC,或者Borland官方站点带的免费编译工具.下面我们通过一个简单的例子来说明具体操作步骤:
这个例子是简单的提供一个函数,用来判断一个文件是否为Dat格式的VCD文件.头文件声明如下:
以下是引用片段:
/*
文件名称:DatFormat.h
*/
#ifndef DatFormat_H
#define DatFormat_H
#include
#pragma pack(push, 1)//这个与下面的配对,一般用到记录类型的时候需要定义,这里实际不用
#ifdef __cplusplus
extern "C" {
#endif
extern BOOL CheckIsDatFile(const char * FileName,BOOL *IsDatFile);
#ifdef __cplusplus
}
#endif
#pragma pack(pop)
#endif // DatFormat_H
具体实现代码