【logo制作网站源码】【jdk源码分析指南】【mysql源码哪里有】delphi源码转c源码

2024-12-23 03:11:05 来源:ffmpeg源码的用法 分类:热点

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

delphi源码转c源码

源码源码logo制作网站源码

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

源码源码logo制作网站源码

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

          这种方法的好处在于最终EXE不用带任何外部文件 也不用对C语言过于熟悉

源码源码logo制作网站源码

          我们都知道 代码在编译成可执行文件(或DLL OCX文件 下同)之前 都必须得先生成OBJ文件(DELPHI一般是DCU文件 但也可以通过编辑编译选项生成OBJ文件) 然后把OBJ文件和资源文件(* RES)链接成最终的可执行文件 利用这个方法 我们可以直接把OBJ文件链接到我们的程序里面

源码源码logo制作网站源码

          不过需要注意的是 编译器不同 生成的OBJ文件也不一样 Microsoft的编译器生成的OBJ文件是COFF格式 而Borland的C++Builder生成的是OMF格式 因为我们需要在Delphi中链接 所以必须使用CBC 或者Borland官方站点带的免费编译工具 下面我们通过一个简单的例子来说明具体操作步骤:

源码源码logo制作网站源码

          这个例子是简单的提供一个函数 用来判断一个文件是否为Dat格式的VCD文件 头文件声明如下:

源码源码logo制作网站源码

       

源码源码logo制作网站源码

        以下是引用片段   /*   文件名称:DatFormat h   */   #ifndef DatFormat_H   #define DatFormat_H   #include    #pragma pack(push   )//这个与下面的配对 一般用到记录类型的时候需要定义 这里实际不用   #ifdef __cplusplus   extern  C  {   #endif   extern BOOL CheckIsDatFile(const char * FileName BOOL *IsDatFile);   #ifdef __cplusplus   }   #endif   #pragma pack(pop)   #endif // DatFormat_H   具体实现代码DatFormat c如下:   #include  DatFormat h   BOOL CheckIsDatFile(const char * FileName BOOL *IsDatFile)   /*   函数说明:该函数用于判断一个文件是否为Dat文件(即VCD文件)格式   参数:   IN:   FileName:欲判断的文件名称   IN OUT:   IsDatFile:是否为Dat格式文件   OUT:   读文件失败返回FALSE 否则返回TRUE      作者:陈经韬  // soft lovejingtao@ cn   */   {   HANDLE hFile;   DWORD dwBytesRead;   BOOL re;   char MyBuf[ ];   *IsDatFile=FALSE;   //建立读文件句柄   hFile = CreateFile(FileName   GENERIC_READ   FILE_SHARE_READ   NULL   OPEN_EXISTING       );   if (hFile == INVALID_HANDLE_VALUE) return FALSE;   //读文件   re = ReadFile(hFile   &MyBuf      &dwBytesRead   NULL);   if (dwBytesRead!= )   {   CloseHandle(hFile);   return FALSE;   }   //读文件失败的时候   if (re!=TRUE)   {   CloseHandle(hFile);   return FALSE;   }   CloseHandle(hFile);   *IsDatFile=(MyBuf[ ]== R  && MyBuf[ ]== I  && MyBuf[ ]== F  && MyBuf[ ]== F );   return(TRUE);   }

源码源码logo制作网站源码lishixinzhi/Article/program/Delphi//

源码源码logo制作网站源码

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

源码源码logo制作网站源码          Delphi适合用来开发应用程序 但是有时侯一些底层的东西可以直接使用C语言来开发 我在公司经常开发跟硬件相关的项目 而很多硬件的SDK包是用C来写的 这个时候我一般把它们转换成Delphi(PASCAL)语法的代码

源码源码logo制作网站源码

          一:将C语言的程序编译成DLL供Delphi调用 这种方法过于简单 而且需要额外带一个DLL文件 所以不在本文的讨论范围之内

源码源码logo制作网站源码

          二:直接转换C语言代码到DELPHI代码

源码源码logo制作网站源码

          C语言的函数格式与Delphi不同 它们是函数返回类型在前 函数声明在后 对于没有任何返回类型的函数则定义为VOID类型

源码源码logo制作网站源码

          例如:Delphi中函数function MyFunction:(intIN:integer):Bool;相应的C语言代码就变成Bool MyFunction(int intIN);又例如procedure MyProcedure;====>void MyProcedure;采用这种方法 一般要求对C语言比较熟悉 我一般是采用这种方法 下面是我收集整理的自己常用的Delphi与C之间的类型对应表 其中左边是C类型 右边是对应的Delphi类型:

源码源码logo制作网站源码

       

源码源码logo制作网站源码

          以下是引用片段: 

源码源码logo制作网站源码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 lishixinzhi/Article/program/Delphi//

源码源码logo制作网站源码

本文地址:http://50.net.cn/html/47a722992723.html 欢迎转发