運行Delphi,新建一個工程並保存.然後把DatFormat.OBJ拷貝到它的目錄之下.在單元的implementation下面添加如下代碼:
{$LINK 'DatFormat.obj'} //鏈接外部OBJ文件
function _CheckIsDatFile(const FileName:Pchar;IsDatFile:PBool):Bool;cdecl;external;//定義函數.其中cdecl進棧方式說明采用C語言格式傳遞參數.external說明是個外部聲明函數.
注意函數聲明的原形與C定義的不一樣.必須在前面添加一個下劃線.原因是因為編譯器的鏈接符號中.C與C++是不一樣的.因為這個不是本文重點,所以這裡不作討論.請感興趣的朋友自行參閱相關資料.
然後我們寫如下代碼調用此函數:
以下是引用片段:
procedureTFrmMain.Button1Click(Sender:TObject);
var
IsDatFile:Bool;
begin
ifOpenDialog1.Executethen
if_CheckIsDatFile(Pchar(OpenDialog1.FileName),@IsDatFile)then
ifIsDatFilethenShowMessage('恭喜!該文件是一個Dat格式的視頻文件!')
elseShowMessage('不好意思,該文件不是一個Dat格式的視頻文件!')
elseShowMessage('讀文件錯誤!');
end;
編譯這個程序,將得到一個干淨的可執行EXE文件了.
四:C++Builder中使用Delphi單元
這個實際是題外話了,不過這裡還是提一提:假設我們有一個獲取BiOS密碼的Delphi單元
unit AwardBiOSPas;
{=======================================================
項目: 在Delphi編程中使用C語言代碼- 演示程序
模塊: 獲取BiOS密碼單元
描述:
版本:
日期: 2004-01-17