运行CBC
新建一个工程
然后把DatFormat
c添加到工程里面
编译整个工程
将得到我们需要的OBJ文件:DatFormat
OBJ
然后我们关闭CBC即可
因为下面不再需要用到它了
运行Delphi新建一个工程并保存然后把DatFormatOBJ拷贝到它的目录之下在单元的implementation下面添加如下代码:
{$LINK DatFormatobj} //链接外部OBJ文件
function _CheckIsDatFile(const FileName:Pchar;IsDatFile:PBool):Bool;cdecl;external;//定义函数其中cdecl进栈方式说明采用C语言格式传递参数external说明是个外部声明函数
注意函数声明的原形与C定义的不一样必须在前面添加一个下划线原因是因为编译器的链接符号中C与C++是不一样的因为这个不是本文重点所以这里不作讨论请感兴趣的朋友自行参阅相关资料
然后我们写如下代码调用此函数:
以下是引用片段
procedureTFrmMainButtonClick(Sender:TObject);
var
IsDatFile:Bool;
begin
ifOpenDialogExecutethen
if_CheckIsDatFile(Pchar(OpenDialogFileName)@IsDatFile)then
ifIsDatFilethenShowMessage(恭喜!该文件是一个Dat格式的视频文件!)
elseShowMessage(不好意思该文件不是一个Dat格式的视频文件!)
elseShowMessage(读文件错误!);
end;
编译这个程序将得到一个干净的可执行EXE文件了
四:C++Builder中使用Delphi单元
这个实际是题外话了不过这里还是提一提:假设我们有一个获取BIOS密码的Delphi单元
unit AwardBiosPas;
{=======================================================
项目: 在Delphi编程中使用C语言代码 演示程序
模块: 获取BIOS密码单元
描述:
版本:
日期:
作者: 陈经韬lovejingtao@cncomhttp://wwwsoftcom
更新:
=======================================================}
[] [] [] []