通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
资源搜索:
热门搜索:Linux VB C语言 PhotoShop Flash TCP/IP
   首页 | 文章 | 软件 | 动画 | 资源 | 励志 | 骗术 | 论坛 | 邮箱 | 会员中心 | 军事 | 科技 | 博客 | 图片 | 商城 | 最新更新 | 800g资源 | 爱心黑客
您现在的位置: 爱国者黑客 >> 资源 >> 程序设计 >> Delphi语言 >> 基础教程 >> 文章正文
在Delphi编程中使用C语言代码
责任编辑:ncic   更新日期:2007-4-3

  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
  LONGDOUBLE->Extended
  LONGINT->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
  SHORTINT->SmallInt
  SIZE->TSize
  TEXTMETRIC->TTextMetric
  TPOINT->TPoint
  TRECT->TRect
  TTPOLYCURVE->TTTPolyCurve
  TTPOLYGONHEADER->TPolygonHeader
  UINT->Word
  UNSIGNED->Word
  UNSIGNEDCHAR->Byte
  UNSIGNEDINT->Word
  UNSIGNEDLONG->LongInt(DWORD)
  UNSIGNEDLONGINT->LongInt
  UNSIGNEDSHORT->Word
  UNSIGNEDSHORTINT->Word
  VOID*->Pointer
  WINDOWPLACEMENT->TWindowPlacement
  WINDOWPOS->TWindowPos
  WNDCLASS->TWndClass
  WORD->Word

  三:在Delphi中直接链接C语言的OBJ文件.

  • 上一篇文章:
  • 下一篇文章:
  • 热门文章
    Olldbg常见问题
    汇编语言的艺术(组合语言的艺术)--观
    汇编语言的艺术(组合语言的艺术)--准
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言---程式设计 (4)
    虚拟8086模式
    SYS命令使用说明
    javascript + CSS 实现动态菜单显
    推荐文章
    自制Windows XP SP2自动安装光盘
    SQLServer注入工具改进版 v1.02
    使用photoshop CS进行自然美肤
    Photoshop绘制诺基亚手机
    PHOTOSHOP制作秋日之梦
    PHOTOSHOP鼠绘名模王爱萍
    Photoshop制作晶莹飞溅的水珠
    教你用PHOTOSHOP做放大镜
    鼠绘美女及服装修画全过程