您现在的位置是:首页 >

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

火烧 2022-01-05 14:37:06 1042
在Del hi编程中使用C语言代码[2]  三:在Del hi中直接链接C语言的OBJ文件  这种方法的好处在于最终EXE不用带任何外部文件 也不用对C语言过于熟悉   我们都知道 代码在编译成可执行

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

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

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

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

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

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

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

以下是引用片段      #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)      {   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);   }

lishixinzhi/Article/program/Delphi/201311/24759  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码