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

 我来答
舒适还明净的海鸥i
2022-10-18 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:69.7万
展开全部

   在Delphi编程中使用C语言代码

  Windows下编程的工具有很多 例如VB Delphi VC等等 我在这里不想讨论 它们的具体哪个更好一点 这种幼稚的问题 玩过DOS程序设计的人都知道 DOS下很多语言的实质核心还是调用系统提供的汇编中断函数 到了Windows下 它就变成了我们常说的API了 而在Windows下写程序很多时候都是调用API 语言 只不过是一个表达工具而已

  我现在已经参加工作大约有半年左右 我们公司是用Borland公司的Delphi作为主开发工具 本着未偏袒任何一个工具的立场 我说句公道话:Delphi是目前Win 下开发程序的最快速 最有效率的工具

  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   PAREITEMSTRUCT  > TCompareItemStruct   STAT  > 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   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  > indowPlacement   WINDOWPOS  > indowPos   WNDCLASS  > ndClass   WORD  > Word

lishixinzhi/Article/program/Delphi/201311/24758

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式