熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

C語言代碼套用在Delphi編程中[1]

2013-11-11 21:05:09  來源: Delphi編程 

  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

[]  []  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/8458.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.