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