安全黑客
当前位置:安全黑客文章资讯编程技术Delphi编程
日期:2011-03-20 18:14:00  来源:本站整理

在Delphi编程中利用C语言代码[Delphi编程]

赞助商链接



  本文“在Delphi编程中利用C语言代码[Delphi编程]”是由安全黑客为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  Delphi编程中利用C语言代码

  Windows下编程的工具有很多,比方VB,Delphi,VC等等.我在这里不想谈论"它们的具体哪个更好一点"这种幼稚的问题.玩过DOS程序计划的人都知道,DOS下很多语言的实质核心还是调用系统供应的汇编中止函数.到了Windows下,它就变成了我们常说的API了.而在Windows下写程序很多时刻都是调用API,语言,只不过是一个表达工具罢了.

  我目前已经参与工作大约有半年左右,我们公司是用Borland公司的Delphi作为主开辟工具.本着未偏向任何一个工具的态度,我说句公道话:Delphi是目前Win32下开辟程序的最快速,最有效率的工具.

  Delphi适实用来开辟利用程序,但是有时侯一些底层的东西可以直接利用C语言来开辟.我在公司常常开辟跟硬件相关的项目,而很多硬件的SDK包是用C来写的.这个时刻我普通把它们转换成Delphi(PASCAL)语法的代码.下面谈一下我的个人粗浅经验.因为当时学校教的是Pascal语言,所以我对C语言并非太熟手.下面的概念大概代码若有错漏之处但愿高手们放小弟一马:)

  一:将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
  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语言代码[Delphi编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看安全黑客为您推荐以下文章:
  • 在Delphi与C++之间实现函数与对象同享
  • 在Delphi编程中利用C语言代码
  • 本文地址: 与您的QQ/BBS好友分享!

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    免责条款 - 广告合作 - 下载声明 - 欢迎投稿 - 友情连接 - 网站地图 -
    Copyright © 2012-2013 www.110hack.com. All Rights Reserved .