本文详细介绍在Delphi编程中使用C语言代码
这种方法的好处在于最终EXE不用带任何外部文件.也不用对C语言过于熟悉.
我们都知道,代码在编译成可执行文件(或DLL,OCX文件,下同)之前,都必须得先生成OBJ文件(DELPHI一般是DCU文件,但也可以通过编辑编译选项生成OBJ文件),然后把OBJ文件和资源文件(*.RES)链接成最终的可执行文件.利用这个方法,我们可以直接把OBJ文件链接到我们的程序里面.
不过需要注意的是,编译器不同,生成的OBJ文件也不一样.Microsoft的编译器生成的OBJ文件是COFF格式,而Borland的C++Builder生成的是OMF格式.因为我们需要在Delphi中链接,所以必须使用CBC,或者Borland官方站点带的免费编译工具.下面我们通过一个简单的例子来说明具体操作步骤:
这个例子是简单的提供一个函数,用来判断一个文件是否为Dat格式的VCD文件.头文件声明如下:
以下是引用片段:
/*
文件名称:DatFormat.h
*/
#ifndefDatFormat_H
#defineDatFormat_H
#include
#pragmapack(push,1)//这个与下面的配对,一般用到记录类型的时候需要定义,这里实际不用
#ifdef__cplusplus
extern"C"{
#endif
externBOOLCheckIsDatFile(constchar*FileName,BOOL*IsDatFile);
#ifdef__cplusplus
}
#endif
#pragmapack(pop)
#endif//DatFormat_H
具体实现代码DatFormat.c如下:
#include"DatFormat.h"
BOOLCheckIsDatFile(constchar*FileName,BOOL*IsDatFile)
/*
函数说明:该函数用于判断一个文件是否为Dat文件(即VCD文件)格式.
参数:
IN:
FileName:欲判断的文件名称
IN,OUT:
IsDatFile:是否为Dat格式文件
OUT:
读文件失败返回FALSE,否则返回TRUE.
------------------------------------
作者:陈经韬.2004,01,17.http://www.138soft.com,lovejingtao@21cn.com
*/
{
HANDLEhFile;
DWORDdwBytesRead;
BOOLre;
charMyBuf[4];
*IsDatFile=FALSE;
//建立读文件句柄
hFile=CreateFile(FileName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
0,
0);
if(hFile==INVALID_HANDLE_VALUE)returnFALSE;
//读文件
re=ReadFile(hFile,
&MyBuf,
4,
&dwBytesRead,
NULL);
if(dwBytesRead!=4)
{
CloseHandle(hFile);
returnFALSE;
}
//读文件失败的时候
if(re!=TRUE)
{
CloseHandle(hFile);
returnFALSE;
}
CloseHandle(hFile);
*IsDatFile=(MyBuf[0]=='R'&&MyBuf[1]=='I'&&MyBuf[2]=='F'&&MyBuf[3]=='F');
return(TRUE);
}运行CBC,新建一个工程,然后把DatFormat.c添加到工程里面,编译整个工程,将得到我们需要的OBJ文件:DatFormat.OBJ.然后我们关闭CBC即可,因为下面不再需要用到它了.
来源:csdn 作者:陈经韬 责编:豆豆技术应用
正在加载评论...
- Delphi新闻
- Delphi教程
- Delphi 7.0
- Delphi 2007
- Delphi控件
- Delphi网络编程
- Delphi for php
- Delphi界面/视图
- Delphi系统控制
- Delphi数据库
- Delphi源码下载