Delphi适合用来开发应用程序但是有时侯一些底层的东西可以直接使用C语言来开发我在公司经常开发跟硬件相关的项目而很多硬件的SDK包是用C来写的这个时候我一般把它们转换成Delphi(PASCAL)语法的代码
一:将C语言的程序编译成DLL供Delphi调用这种方法过于简单而且需要额外带一个DLL文件所以不在本文的讨论范围之内
二:直接转换C语言代码到DELPHI代码
C语言的函数格式与Delphi不同它们是函数返回类型在前函数声明在后对于没有任何返回类型的函数则定义为VOID类型
例如:Delphi中函数function MyFunction:(intIN:integer):Bool;相应的C语言代码就变成Bool MyFunction(int intIN);又例如procedure MyProcedure;====>void MyProcedure;采用这种方法一般要求对C语言比较熟悉我一般是采用这种方法下面是我收集整理的自己常用的Delphi与C之间的类型对应表其中左边是C类型右边是对应的Delphi类型:
以下是引用片段:
ABC
> TABC
ACCEL > TAccel
ATOM > TAtom
BITMAP > TBitMap
BITMAPCOREHEADER > TBitmapCoreHeader
BITMAPCOREINFO > TBitmapCoreInfo
BITMAPFILEHEADER > TBitmapFileHeader
BITMAPINFO > TBitmapInfo
BITMAPINFOHEADER > TBitmapInfoHeader
BOOL > Bool
CBT_CREATEWND > TCBT_CreateWnd
CBTACTIVATESTRUCT > TCBTActivateStruct
CHAR > Char
CHAR* > PChar
CLIENTCREATESTRUCT > TClientCreateStruct
COLORREF > TColorRef
COMPAREITEMSTRUCT > TCompareItemStruct
COMSTAT > TComStat
CREATESTRUCT > TCreateStruct
CTLINFO > TCtlInfo
CTLSTYLE > TCtlStyle
CTLtype > TCtltype
DCB > TDCB
DDEAACK > TDDEAck
DDEADVISE > TDDEAdvise
DDEDATA > TDDEData
DDEPOKE > TDDEPoke
DEBUGHOOKINFO > TDebugHookInfo
DELETEITEMSTRUCT > TDeleteItemStruct
DEVMODE > TDevMode
DOUBLE > Double
DRAWITEMSTRUCT > TDrawItemStruct
DWORD > LongInt
ENUMLOGFONT > TEnumLogFont
EVENTMSG > TEventMsg
FARPROC > TFarProc
FIXED > TFixed
FLOAT > Single
GLYPHMETRICS > TGlyphMetrics
HANDLE > THandle
HANDLETABLE > THandleTable
HARDWAREHOOKSTRUCT > THardwareHookStruct
HELPWININFO > THelpWinInfo
INT > Integer
KERNINGPAIR > TKerningPair
LOGBRUSH > TLogBrush
LOGFONT > TLogFont
LOGPALETTE > TLogPalette
LOGPEN > TLogPen
LONG > LongInt
LONG DOUBLE > Extended
LONG INT > LongInt
LPSTR > PChar
LPWSTR > PWideChar
MAT > TMat
MDICREATESTRUCT > TMDICreateStruct
MEASUREITEMSTRUCT > TMeasureItemStruct
MENUITEMTEMPLATE > TMenuItemTemplate
MENUITEMTEMPLATEHEADER > TMenuItemTemplateHeader
[] [] [] [] []