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

c語言winapi

發布時間: 2022-01-12 07:53:12

❶ 問一下在c語言中如何使用windows api 函數

#include <windows.h>

❷ Windows程序設計與C語言的主要區別是什麼

一、主體不同

1、Windows程序設計:基於MFC類庫進行的程序開發設計。

2、C語言:是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。

二、特點不同

1、Windows程序設計:以C++類的形式封裝了Windows API,並且包含一個應用程序框架,以減少應用程序開發人員的工作量。

2、C語言:僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性。


三、優缺點不同

1、Windows程序設計:包含大量Windows句柄封裝類和很多Windows的內建控制項和組件的封裝類。專心的考慮程序的邏輯,而不是這些每次編程都要重復的東西,但是由於是通用框架,沒有最好的針對性。

2、C語言:依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。



❸ windows的API是不是專門提供給c++的c語言能不能用這些API進行windows編程

做程序的話,首先要明確自己是在什麼操作系統上做程序.很多人都沒有這個概念,因為我們平時用的就是windows操作系統.可實際上還有UNIX/linux操作系統這一塊非常重要的程序陣營.
其實,windows的API就是讓程序員編寫與windows操作系統有關的程序,象有窗口界面的這種程序,或是基於windows機制的程序,如利用windows內存管理機制的程序,象exel就是非常注重內存分配的問題.
只要一般和這兩點有關的就要用到windows的API.其實API可以簡單的理解為系統函數.就是我們用函數來寫程序,就這方面而言和printf這樣的函數使用是一樣的.
windows API函數是微軟讓程序員來開發在windows下使用的程序,因此只要你的程序在windows下運行,就可以使用windows API.無論是VB,VC, DELPHI都可以使用.API是與語言無關的,當然在使用語法上會有些小小的變換.有興趣你可以看下VB和VC對API使用的不同之處.
你說的C語言能不能用這些API進行編程呢?我覺得當然能嘍,VC不就是嗎?為什麼樓上的都說不能,很奇怪.
至於windows的API是不是專門提供給c++的?我的回答還是那句,任何語言都可以使用API,因為API與語言無關的,只要是在windows下運行,都直接或間接的調用了windows API.它只是個函數或者准確點是個介面(interface).
微軟在他的C++里早已經把windows API給用進去了,那你說windows API能不能提供給C++呢.微軟集成的API和C++就是我們耳熟能詳的MFC!
kk8212478的回答,樓主還是忽略吧!

❹ 急 如何編寫c程序來調用WINDOWS API函數來打開一個文檔。。

照我說的做: 點菜單中的project->settings 來設定你這個工程的屬性。 在打開的屬性頁中點擊Link選項卡。 Category選項選擇General(這個就是默認的) 下面第二個欄(Object/library moles)里寫下你需要的lib庫,多個庫以空格分隔 例如: kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib msimg32.lib winmm.lib 注意:這個方法添加以後,如果你切換了左側debug/release的選項。還需要重新添加一下才可以。 此外樓上兄弟的方法比較簡便,不僅只在VC中適用。 .h的文件就直接include 就行。

❺ c語言中怎麼調用windowsAPI函數,

c++調用windows API方法非常方便,只要在文件的開頭包含了相應的頭文件就可以直接調用了.下面給一個簡單的例子:
#include "stdafx.h" // 這是VC自動添加的文件,沒有什麼用途
#include <windows.h> // 包含MessageBox函數聲明的頭文件

int main(int argc, char* argv[])
{
// 調用API函數MessageBox
int nSelect = ::MessageBox(NULL, "Hello, Windows XP", "Greetings", MB_OKCANCEL);
if(nSelect == IDOK)
printf(" 用戶選擇了「確定」按鈕 \n");
else
printf(" 用戶選擇了「取消」按鈕 \n");
return 0;
}
調用API具體步驟:
1.包含調用函數的頭文件;
2.連接指定的庫文件;
3.API函數前加::符號,表示全局函數.
4.在MSDN中可以找到相關API的用法。

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

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

❼ 怎麼用windows api編程用c語言的,我不懂求指點

如果是入門的話,不要用C,直接用C++。
最好用IDE中的向導生成。
等你入門了,再仔細研究API調用。

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

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

❾ C語言或是C++語言是怎麼調用winAPI來進行windows編程的呢

調用WINDOWSAPI,你得把調用函數所在的頭文件INCLUDE到你的程序當中,並且連接相應庫。其它的跟普通C程序沒什麼兩樣。可以用C和C++編寫DLL,至於修改啉,修改你的當然可以,其它的我沒試過,好像不行

❿ 怎麼用C語言編寫一個windows窗口

  1. 調用window庫窗口函數即可創建windows窗口。

  2. 必須使用windows的編譯器,如VC,MS等等。

    RegisterClassEx函數:
    該函數注冊在隨後調用CreateWindow函數和CreateWindowEx函數中使用的窗口類。 RegisterClass函數己經由函數RegisterClassEx函數來代替,但是,如果不需要設置類的小目標則仍然可以使用RegisterClass函數。
    CreateWindowEx函數:
    該函數創建一個具有擴展風格的層疊式窗口、彈出式窗口或子窗口,其他與CreateWindow函數相同。關於創建窗口和其他參數的內容,請參看CreateWindow。具體仍可見微軟的msdn。
    消息處理函數WindowProc:
    該函數是一個應用程序定義的函數。它處理發送給窗口的消息。WINDPROC類型定義了一個指向該回調函數的指針。WindowProc是用於應用程序定義函數的佔位符。
    函數原型:
    LRESULT CALLBACK WindowProc (HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);
    參數:
    hwnd:指向窗口的句柄。
    uMsg:指定消息類型。
    wParam:指定其餘的、消息特定的信息。該參數的內容與UMsg參數值有關。
    IParam:指定其餘的、消息特定的信息。該參數的內容與uMsg參數值有關。
    返回值:返回值就是消息處理結果,它與發送的消息有關。

    一個簡單的Window的代碼如下:

    #include<Windows.h>
    #include<tchar.h>
    LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);
    intWinMain(
    __inHINSTANCEhInstance,
    __in_optHINSTANCEhPrevInstance,
    __inLPSTRlpCmdLine,
    __inintnShowCmd
    )
    {
    TCHAR*szName=_T("myWindow");
    WNDCLASSEXwc={0};
    HWNDhWnd=NULL;
    MSGMsg={0};
    wc.cbClsExtra=0;
    wc.cbWndExtra=0;
    wc.cbSize=sizeof(WNDCLASSEX);
    wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//通過函數來設置一個白色的背景,這里大家設置為NULL看看,會很有趣的
    wc.hCursor=NULL;//不設置
    wc.hIcon=NULL;//不設置
    wc.hIconSm=NULL;//不設置
    wc.hInstance=hInstance;//當前程序的句柄,hInstance是有系統給傳遞的
    wc.lpfnWndProc=WinProc;//窗口處理過程的回調函數。
    wc.lpszClassName=szName;//窗口類的名字。
    wc.lpszMenuName=NULL;
    wc.style=CS_HREDRAW|CS_VREDRAW;
    RegisterClassEx(&wc);//在系統中注冊
    hWnd=CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜歡"),WS_OVERLAPPEDWINDOW,
    200,100,600,400,NULL,NULL,hInstance,NULL);//創建窗口,窗口標題為"我的窗口我喜歡"
    if(hWnd==NULL)
    {
    MessageBox(NULL,_T("There'sanError"),_T("ErrorTitle"),MB_ICONEXCLAMATION|MB_OK);
    return0;
    }
    ShowWindow(hWnd,nShowCmd);//顯示窗口
    UpdateWindow(hWnd);
    //下面是對消息的循環處理,大家先不必管這些,下節課我會細說的
    while(GetMessage(&Msg,NULL,0,0))
    {
    TranslateMessage(&Msg);//翻譯消息
    DispatchMessage(&Msg);//分派消息
    }
    returnMsg.message;
    }
    //消息處理函數
    LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam)
    {
    switch(Msg)//處理消息過程
    {
    caseWM_DESTROY://響應滑鼠單擊關閉按鈕事件
    PostQuitMessage(0);//退出消息隊列
    return0;//退出函數
    }
    returnDefWindowProc(hWnd,Msg,wParam,lParam);
    }