編譯c語言的sdk
1. 請介紹一本教c語言的windows SDK編程的入門書
《windows 程序設計(第五版)》--這一本如果你英文好的話可以買人民郵電出版社的,是英文版的,不過較貴,總價168元。分上下兩冊。裡面詳細用C語言講述了SDK編程和一些API的調用。中文版的話有北大翻譯的《windows程序設計》,這個有盜版的賣,大概50元左右。
《windows核心編程》既有中文版也有英文版,正版盜版都有。
2. C語言SDK編程
public class convertToOx extends Frame implements ActionListener{
Label ox; //顯示結果的標簽
TextField input; //輸入文本框
public convertToOx(){
super("二進制轉十進制"); //定義窗體的標題
dec=new Label("字元");
input=new TextField(20);
Button convert=new Button("轉換"); //轉換按鈕
setLayout(new FlowLayout()); //制定按流式布局排布控制項
add(input);
add(convert);
add(ox);
convert.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String s=input.getText(); //獲取文本框的輸入字元串
int x=Integer.parseInt(s,16); //按十六進制分析字元串
ox.setText("結果="+x); //將分析後的十進制結果顯示在標簽處
}
public static void main(String args[]){
Frame x=new convertToOx();
x.setSize(450,150); //設置窗體大小
x.setVisible(true); //讓窗體可見
}
}
3. 有能在蘋果手機上編輯編譯運行C/C++程序的軟體嗎
有,你可以在app store 里搜索c/c++,就有ide可以用
4. MFC和SDK有什麼區別
SDK (Software Development Kit,軟體開發包) 軟體開發包通常是一系列API函數,而MFC 是由微軟公司提供的對API封裝後的類庫,因此從這個意義上可以說MFC是SDK的封裝。另外,mfc中封裝了一套消息處理流程,將sdk中API全部做了封裝,使得開發起來速度加快,而sdk是最底層的函數庫,mfc對它進行了封裝。 用VC編寫Windows程序有兩種:1. Windwos c方式(SDK),2.C++方式:即對SDK函數進行包裝,如VC的MFC,BCB的OWL等。SDK編程就是直接調用Windows的API進行編程,平時人們常說"用SDK寫程序"就是指用Windows的API函數來寫程序,API由上千個API函數組成(Win95的API有兩千多個)。而MFC是API的封閉,結合面向對象程序設計的繼承性和多態性組成一個個的"類",共由一百多個類組成。盡管MFC比SDK方便,但要深入VC,直接去學MFC卻是不明智的選擇。只有在熟悉了MFC的運行機制的情況下,才有可能深入下去。所以學VC最好是先學用SDK編寫程序,在此期間深入掌握Windows操作系統的工作原理和各API函數的應用,然後再深入MFC. SDK是基於C語言的,而MFC是基於C++的,這是最根本的區別。 MFC主要封裝的是界面、文件、WinInet和線程等函數。MFC除了封裝API,最重要的是它的體系結構,它所使用的Doc/View結構是SDK中沒有的,這種架構是比較特殊的。盡管Doc/View結構不是微軟的發明,但它是MFC的特色。微軟開發Windows時使用的是C語言,所以最初設計SDK時並沒有考慮C++。 MFC是微軟的基本類庫,對很多東西已經進行了封裝,因此使用起來簡單、方便。SDK是採用較一般的C語言,但很靈活。 一般編寫簡單的程序,使用MFC應該能達到要求。但如果編寫功能強大的程序,則使用SDK較多,尤其是底層的開發。 SDK就是SoftwareDevelopmentKit的縮寫,中文意思就是「軟體開發工具包」。這是一個覆蓋面相當廣泛的名詞,可以這么說:輔助開發某一類軟體的相關文檔、範例和工具的集合都可以叫做「SDK」。我們後面只討論廣義SDK的一個子集——即開發Windows平台下的應用程序所使用的SDK。 首先要接觸的是「API」,也就是,其實就是操作系統留給應用程序的一個調用介面,應用程序通過調用操作系統的API而使操作系統去執行應用程序的命令(動作)。其實早在DOS時代就有API的概念,只不過那個時候的API是以中斷調用的形式(INT21h)提供的,在DOS下跑的應用程序都直接或間接的通過中斷調用來使用操作系統功能,比如將AH置為30h後調用INT21h就可以得到DOS操作系統的版本號。而在Windows中,系統API是以函數調用的方式提供的。同樣是取得操作系統的版本號,在Windows中你所要做的就是調用GetVersionEx()函數。可以說,DOSAPI是「Thinkingin匯編語言」的,而WindowsAPI則是「Thinkingin高級語言」的。DOSAPI是系統程序的一部分,他們與系統一同被載入內存並且可以通過中斷矢量表找到他們的入口,那麼WindowsAPI呢?要說明白這個問題就不得不引入下面要介紹的這個概念——DLL。 DLL,即DynamicLinkLibrary(動態鏈接庫)。我們經常會看到一些.dll格式的文件,這些文件就是動態鏈接庫文件,其實也是一種可執行文件格式。跟.exe文件不同的是,.dll文件不能直接執行,他們通常由.exe在執行時裝入,內含有一些資源以及可執行代碼等。Windows的三大模塊就是以DLL的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),裡面就含有了API函數的執行代碼。為了使用DLL中的API函數,我們必須要有API函數的聲明(.H)和其導入庫(.LIB),函數的原型聲明不難理解,那麼導入庫又是做什麼用的呢?我們可以這樣理解:導入庫是為了在DLL中找到API的入口點而使用的。 所以,為了使用API函數,我們就要有跟API所對應的.H和.LIB文件,而SDK正是提供了一整套開發Windows應用程序所需的相關文件、範例和工具的「工具包」。到此為止,我們才真正的解釋清楚了SDK的含義。
5. k210可以用c語言編譯嗎
可以。
在kendryte-standalone-sdk目錄下創建build目錄。
打開cmd,進入build目橋銷錄,在build目錄下運行cmake。
輸入以下命令:
cmake…–DPROJ=hello_world–G「MinGWMakefiles」磨塵
稍等片瞎消禪刻,接著輸入以下命令:
make -j
稍等片刻就會在build文件夾下出現一個bin格式的固件,這就是我們的目標檢測固件,直接用kflash燒錄到k210就能用了
6. C語言SDK程序中的代碼怎麼理解
BITMAPINFO是BMP文件信息,RGBQUAD是調色板,都定義在wingdi.h。詳細可看我以前總結的BMP格式說明:
- 點陣圖(BMP)的格式
點陣圖有1位點陣圖(單色)、4位點陣圖(16色)、8位點陣圖(256色)、16位點陣圖()、24位點陣圖(真彩色)、32位點陣圖()。他們都符合同樣的結構。
- 總結構
- 文件頭 // 1個,14個位元組
- 點陣圖信息頭 // 1個,40個位元組
- 調色板信息 // 可選部分,對於24位點陣圖是沒有的
- 數據區
- 文件頭
用於描述整個bmp文件的情況。結構如下:
typedef struct tagBITMAPFILEHEADER // 14個位元組
{
unsigned short bfType; // 一定是"BM",也就是0x4D42,表示這是一個BMP文件
unsigned long bfSize; // 整個文件的位元組數
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned long bfOffBits; // 點陣圖的數據區離文件頭的偏移量,以位元組為單位。該值可能是54(24位,16位555),70(16位565),1078(8位),118(4位),62(1位)
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
- 點陣圖信息頭
用於描述整個點陣圖文件的情況。
typedef struct tagBITMAPINFOHEADER // 40個位元組
{
unsigned long biSize; // 本結構的大小,一定是40
long biWidth; // 點陣圖的寬(單位:像素)
long biHeight; // 點陣圖的高(單位:像素)
unsigned short biPlanes; // 恆為1
unsigned short biBitCount; // 點陣圖的位數,可取值為1 4 8 16 24 32
unsigned long biCompression; // 16位點陣圖的格式。可取值BI_RGB(0)或BI_BITFIELDS(3)。對於非16位點陣圖,取值BI_RGB;對16位點陣圖,取值BI_RGB表示是555格式;取值BI_BITFIELDS則表示可能是555也可能是565,具體根據掩碼判斷。
unsigned long biSizeImage; // 數據區大小。biSizeImage+bfOffBits==文件大小
long biXPelsPerMeter; // 通常為0
long biYPelsPerMeter; // 通常為0
unsigned long biClrUsed; // 本圖像實際使用的顏色數目。為0表示用到顏色數目為2^biBitCount
unsigned long biClrImportant; // 本圖像中重要顏色的數目。為0表示所有顏色都是重要的
} BITMAPINFOHEADER;
- 調色板信息(可選部分)
- 對於24位點陣圖是沒有的,對於8位點陣圖則存放調色板,16與32位點陣圖則存放RGB顏色的掩碼,這些掩碼以DWORD大小來存放。
- 8位:調色板
有1024位元組的調色板區。一共有256個調色板元素,每個4位元組。
數據區中用8位存儲的1個像素,取值范圍是0~255,其實存儲的就是調色板中index。
一個調色板,4個位元組,是1個RGBQUAD結構體,存儲的是gbr,正好和顏色的rgb相反。
- 16位的555:
如果biCompression==BI_RGB,沒有掩碼區。如果biCompression==BI_BITFIELDS,則有16個位元組的掩碼區。
前3個DWORD,分別是RGB的掩碼,後1個DWORD為0.
555格式為:xrrrrrgggggbbbbb。意思是說,1個像素用16位表示,第一位不用,然後連續5位是r,連續5位是g,連續5位是b
用掩碼可以判斷是否是555。
- 16位的565:16個位元組的掩碼區
有16個位元組的掩碼區。
前3個DWORD,分別是RGB的掩碼,後1個DWORD為0.
00 f8 00 00 e0 07 00 00 1f 00 00 00 00 00 00 00
R掩碼:00 f8 00 00
G掩碼:e0 07 00 00
B掩碼:1f 00 00 00
565格式為:rrrrrggggggbbbbb。意思是說,1個像素用16位表示,連續5位是r,連續6位是g,連續5位是b
用R或G的掩碼,可以判斷當前16位是565還是555。例如用R掩碼來判斷:
R掩碼 == f800 == 1111100000000000,頭5位是1,表示是565。如果R掩碼 == 0111110000000000,則表示是555。
- 數據區
- 按行存儲像素。例如一個row*col的數據,首先存儲第1行,再存儲第2行,...,最後存儲第row行
- 而且每行的數據是按4位元組對齊的。如果一行的數據不足4位元組,則以0在後面補齊。
7. 用C語言設計一套嵌入式UI的SDK該從什麼地方著手
如果用C語言在芹含凳windows下做GUI應用,要看看windows系統編程。這個可以用Windows自己的SDK開發。或者可以用GTK做界面,C的話可以用這個嫌旅SDK(開發包)。此外還老雀有wxwidget,FLTK等。
8. c+sdk是什麼,詳細解釋下,謝謝
是不是c++sdk? c++是一種軟體語言,sdk,軟體開發包。連起來,就滑沖是c++語言的祥讓稿軟體開謹孝發包。
9. 為什麼我用 C語言(SDK)寫的程序比用 VB的可執行文件要大
VB的程序小,是因為你所有用到的API都放在MSVBVM.dll裡面了,所以exe本身很小。你自己查查MSVBVM.dll有多大。使用MFC庫雖然類似(MSVCVM.dll)但是由於是編譯程序,靜態聯編的使用有本質上的速度區別,所以雖然大些卻因為不需要經常調用操作變的很快
10. C語言和MICROSOFT PLATFORM SDK的問題
第一個問題:1.另一台電滑判旦腦有沒有運行環沖塌境。2.需要的文件都拷過去了么?3.程序中路徑設置信擾有沒有問題,設死了或者其他。