當前位置:首頁 » 編程語言 » c語言api編程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言api編程

發布時間: 2022-04-30 21:18:21

A. c語言編程的實質是不是調用庫函數和API

你說得對。當你在使用printf的時候,實際上printf也是調用系統API而已。。。
因此!!!不調用系統函數會導致你的程序代碼量激增。而且庫函數一般都是問題的最優解決方案,所以調用系統函數完全是狠又必要的。
當你要搞很深入的開發的時候不可能不調用系統庫函數的

B. c 語言的 API 是什麼

API是操作系統為我們准備的函數,你可以加入頭文件,然後調用它們,至於編程實例你可以到:
http://tieba..com/f?kw=erbi_lucifer&fr=itb_favo&fp=favo#
這里是我的一些編程的實例,都有重點講解和程序源代碼……希望你喜歡。O(∩_∩)O哈哈~

各類編程實例……

C語言windows編程基礎之sdk窗體編寫模板
C語言windows編程基礎之創建項目(vs2010)
【C語言】【windows】--獲取文件屬性的信息
【C語言】【windows】--注冊表--開機啟動程序
【C語言】【windows】--聖誕禮物--舞動窗體
【C語言】【windows】--電子時鍾編寫
【C語言】【windows】--記事框編寫
【C語言】【windows】--錄音器編寫
【C語言】【windows】--獲取主機名和IP地址
【C語言】【windows】--進制轉換器

C. C語言如何API編程

1、windows平台提供的api平台,只要開發平台支持api介面,一律都支持,並且效果一樣,不區分語言,好多開發平台的內置控制項及類和函數都是調用了api。
2、應用程序編程介面,簡稱API(Application Programming Interface),就是軟體系統不同組成部分銜接的約定。
隨著軟體規模的日益龐大,我們需要把復雜系統劃分成小的組成部分,編程介面的設計十分重要。程序設計的實踐中,編程介面的設計首先要使系統的職責得到合理劃分。良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。
API之主要目的是提供應用程序與開發人員以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節。提供API所定義的功能的軟體稱作此API的實現。API是一種介面,故而是一種抽象。 A reference implementation of an API is the implementation created by the designer of the API, or one which other implementations of the API are expected to be compared against.
例如,圖形庫中的一組API定義調用繪制圖標函數的方式,以於屏幕上顯示圖標。程序中調用,編譯時連接到這組API,執行時便調用API的實現(庫)來顯示圖標。
操作系統的API可用來分配內存或訪問文件。許多系統與應用程序提供API介面與實現,比如圖形系統,資料庫,網路,Web服務,甚至於某些游戲。
一組API經常是一套軟體開發工具包(SDK)的一部分。SDK亦可包含其它工具亦或至於硬體,兩個術語並不完全等同.
API有諸多不同設計。用於快速執行的介面通常包括函數,常量,變數與數據結構。也有其它方式,如通過解釋器,或是提供抽象層以遮蔽同API實現相關的信息,確保使用API的代碼無需更改而適應實現變化。

D. C語言api函數的使用

HWND hwnd = FindWindow("搜狗",NULL);//把那個搜狗換成它的窗口標題就可以了
if(hwnd==NULL)
{
printf("error");
exit(0);
}
SendMessage(hwnd,WM_CLOSE,0,0);//關閉 向它發送窗口結束消息

E. 用C語言直接用API編程,可以開發大型程序嗎

看是什麼類型的大型程序。
一般涉及處理業務的,用C++比較多。因為面向對象編程語言跟容易貼合業務。如果是做一些實用工具,演算法,可以用C

F. C語言可以用來做windows API編程嗎

c語言可以做,可以調用windows的api函數來編寫程序,沒問題的,像那些c語言高級編程實例,就是用的api

G. 用C語言進行API編程

當然有用的啊,現在一般據說寫的驅動據是用C寫的(以前用匯編寫的,現在也有人用匯編寫),越是底層的編程語言,它的執行效率就越高,現在大多的語言封裝的太厲害了,但效率比較低的,好多的危險的操作都給濾去了,而C語言就沒有啊,世界上的編程語言用的最多的有C/C++,他們都很靠前的,這么多年都沒變了,說明人家牛B啊

H. windows api編程與C語言什麼聯系

windows api是基於WINDOWS操作系統框架下做應用軟體的一種函數調用方式,也就是說你只能看到它的函數名和參數,但是看不到函數內部的程序。你根據MSDN上的描述去調用相應功能的API函數來完成你的相關應用函數。當然,在使用VC++時有比調用API更方便的方法,那就是使用相關的類。具體的方式,樓上給出了一個最好的學習方案:孫鑫VC++視頻和書,只要有一定的C語言基礎就能夠理解如何進行應用軟體的編寫。視頻和書在網上都能夠下的到。當然,你說的再學校學習的那些C語言基礎是非常有用的,當你進行深入的編程時就能夠體會的到,我們經常戲稱譚浩強為強哥,就是因為即使是編程老手,有的時候都不得不去翻閱一下強哥的書,裡面的內容雖然平實,但卻非常基礎和關鍵!

I. c語言 api編程的一個問題。

很多地方有錯誤,最明顯的幾處:
1、EnumProcesses(processes_array,sizeof(processes_array),&processes_sumbytes);
sizeof(processes_array)是整個數組的總位元組數,這里傳入的應該是元素個數
2、for(i=0;i<processes_sumbytes/sizeof(processes_array);i++)
同上,應該是processes_sumbytes/sizeof(processes_array[0])
3、EnumProcessMoles(processes_handle,hmole_array,sizeof(hmole_array),sum_mole_bytes);
sum_mole_bytes沒賦值
4、m=strcmp(to_be_terminated,base_name_buffer);
strcmp無法忽略大小寫進行名稱比較
5、if(m=0)
。。。
貼上我的實現代碼,已經測試可行:
#include
<windows.h>
#include
<psapi.h>
#include
<stdio.h>
#define
N
1024
int
WINAPI
WinMain
(HINSTANCE
hInstance,
HINSTANCE
hPrevInstance,
PSTR
szCmdLine,
int
iCmdShow)
{
DWORD
pa[N],
cbNeeded,
i,
cbNeeded2;
HANDLE
hProcess;
HMODULE
hMole;
char
buffer[512];
char*
target
=
"qq.exe";
BOOL
flag
=
FALSE;
if(!EnumProcesses(pa,
N,
&cbNeeded))
{
puts("error
while
enumerating
processes.");
return
0;
}
for(i
=
0;
i
<
cbNeeded/sizeof(pa[0]);
++i)
{
if(!(hProcess
=
OpenProcess(PROCESS_ALL_ACCESS,
FALSE,
pa[i])))
{
printf("open
process
PID:%d
failed\n",
pa[i]);
continue;
}
if(!EnumProcessMoles(hProcess,
&hMole,
sizeof(hMole),
&cbNeeded2))
{
printf("enum
process
moles
failed
PID:%d\n",
pa[i]);
continue;
}
GetMoleBaseName(hProcess,
hMole,
buffer,
sizeof(buffer));
if(lstrcmpi(target,
buffer)
==
0)
{
TerminateProcess(hProcess,
0);
flag
=
TRUE;
break;
}
}
if(flag)
printf("target
process:
%s
successfully
terminated.",
target);
else
puts("terminate
process
failed.");
return
0;
}

J. 用C語言寫api編程,新建一個工程後,這些出現的代碼是什麼意思

這個你得先把windows api 程序設計 基本的 一些知識搞明白
這只是 給你一個程序的基本骨架 方便你 往上加 屬於你的東西

先 找 WinMain函數 整個windows程序的入口....

#include "main.h"
#include "dialogs.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, Main_Proc);
return(0);
}
(搜索msdn dialogbox其實也是個宏....
DialogBox

The DialogBox macro creates a modal dialog box from a dialog box
template resource. DialogBox does not return control until the specified
callback function terminates the modal dialog box by calling the EndDialog function. The DialogBox
macro uses the DialogBoxParam
function.

看 調用了DialogBox ,這個函數 又是幹嘛的呢 看它的第二個參數 和對話框資源有關系
看他的最後一個參數看樣子 是個函數名,即回調函數的名字
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
//BEGIN MESSAGE CRACK
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
//END MESSAGE CRACK
}

return FALSE;
}
HANDLE_MSG是神馬 ,查一下 windowsx.h你就會發現 他是個 帶參數的宏

分析一下 第三個吧
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);

#define HANDLE_MSG(hwnd,message,fn) case (message): return HANDLE_##message((hwnd),(wParam),(lParam),(fn))

其實就是個case語句 ....

case (WM_CLOSE): return HANDLE_##WM_CLOSE((hwnd),(wParam),(lParam),(fn))

case (WM_CLOSE): return HANDLE_WM_CLOSE((hwnd),(wParam),(lParam),(fn))

繼續找頭文件 里 HANDLE_WM_CLOSE
找到
#define HANDLE_WM_CLOSE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
進一步
case (WM_CLOSE): return ((fn)(hwnd),0)

即case (WM_CLOSE): return ((Main_OnClose)(hwnd),0);
逗號表達式 看出來沒有
實際效果也就是
case WM_CLOSE:
Main_OnClose)(hwnd)
return 0;
看出來這就是個windows 窗口回調函數(消息響應函數WinProc)中的CLOSE消息處理的樣子了吧

M$給定義一堆宏 把程序搞得看起來更簡潔了 吧.........
以上分析 建立在 熟悉C語言宏的 和 windows API 窗口程序【 注冊窗口類 、創建窗口
消息循環 、回調響應、消息機制……】如果沒看懂,先去把windows程序設計第五版
如鵬網C語言干大事、中科院楊力祥windwos高級編程 看一看