大家都知道C++Builder本身有API函式
但是互了XE版本1,2,3,4,5以上的API函式 都有用法變化不能編譯
但是在Delphi XE版本以上都沒有變化
在Delphi API函式
var
Form1: TForm1;
function CopyFile(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL; stdcall;
implementation
function CopyFile; external 'kernel32.dll' name 'CopyFile';
//======================================
在C++Builder不知道怎樣宣告API函式
在C++Builder能宣告API函式,就能解決版本用法問題了
uj5u.com熱心網友回復:
就是如何在BCB中使用CopyFile?這個BCB和VB不一樣,它不需要任何宣告,直接使用,但是字串的型別要進行轉換,比如寬位元組的要這樣用:CopyFileW(
Edit1->Text.w_str()
,
Edit2->Text.w_str()
,
false
);
微軟的API中的很多字串在BCB中都要用w_str()來轉換才可以使用
uj5u.com熱心網友回復:
CopyFileW(
Edit1->Text.w_str()
,
Edit2->Text.w_str()
,
false
);
uj5u.com熱心網友回復:
回復kfrght我問的問題不是API函式怎樣用法,我問的問題是C++Builder怎樣宣告API函式
uj5u.com熱心網友回復:
在BCB中宣告API函式,需要三樣東西:1.對應的頭檔案
2.在工程中加入相應的lib檔案
3.在你的電腦上要有配套的dll檔案
以在BCB6中,使用GDIPLUS為例,你需要:
1.gdiplus.h
2.gdiplus.bli加入你的工程
3.在你的系統目錄下(如C:\windows\system32),要有 gdiplus.dll
一般來說,bcb自帶了windows的常用的系統API,在使用的時候直接呼叫就成了,但是BCB也自己封裝了一部分API
比如這個函式:
ClientToScreen,這是一個API函式,但是BCB對它進行了封裝(也許是自己實作的,我不知道),那么你呼叫它的時候,就有兩種情況:
TPoint pt;
ClientToScreen(pt);
這是呼叫的BCB封裝過的API,如果你想直接呼叫windows API的話,你可以這樣:
POINT pt;
::ClientToScreen(this->Handle,&pt)
uj5u.com熱心網友回復:
C++Builder中呼叫Windows API只需要包含相應的頭檔案就行了CopyFile這個API是在winbase.h中宣告的,C++Builder的工程中默認已包含此檔案,直接呼叫。
uj5u.com熱心網友回復:
包含就能用了,不要再次申明了uj5u.com熱心網友回復:
bcb幾乎封裝了所有的apl,然后通過.hpp檔案供我們呼叫這些api,這種.hpp檔案稱為“頭檔案”,要引入這些頭檔案的方法是,在函式體外面寫上:#include<包含要使用的api的檔案名>這里要注意,系統自帶的用<>,用戶自己的放在工程目錄下的用""
uj5u.com熱心網友回復:
第一樓已經說的很清楚了,不需要宣告uj5u.com熱心網友回復:
點解沒有人回答真的答案轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/90225.html
標籤:基礎類
