C语言代码套用在Delphi编程中[1]
1个回答
展开全部
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 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 > TMenuItemTemplateHeaderlishixinzhi/Article/program/Delphi/201311/8458
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询