亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 編程設計 > 正文

淺談API學習經驗

2020-06-27 15:48:33
字體:
來源:轉載
供稿:網友
  API學習經驗之談___1

  問題1____句柄

  相信這個"東西"足以讓各位朋友郁悶很長一段實際在"云里霧里"中(小生可能更嚴重)

  其實,這是一個最不足以讓你去深究的東西,先聽聽"大師級人物"(個人認為)羅云彬老師在<<Windows 環境下32位匯編語言程序設計>>(好書啊!~_~)一書中對它的定義:

  句柄只是一個數值而已,它的值對程序來說是沒什么有意義的,它只是Windows用來表示資源的編號而已,所以只有Windows才知道怎么使用它來引用各種資源!

  明白了嗎?(鬼才明白~_~!)

  好,舉例來說,屏幕上已經有10個窗口,Windows把他們從1道10編號,應用程序又建立了一個窗口,現在Windows把它編號位11,然后把11當做窗口句柄返回個應用程序,應用程序并不知道11代表的是什么,但在操作窗口的時候,把11當作句柄傳給Windows,Windows自然可以根據這個數值查出是哪個窗口.當該窗口關閉的時候,11這個編號就作廢了.第二次運行的時候,如果屏幕上又有5個窗口,那么現在句柄可能就是6了,所以,應用程序不用關心句柄的具體數值是多少.打個比方,可以把句柄當做是商場中寄放包包時營業員MM給的紙條,紙條上的標號代表什么,用戶不用去了解,但把它給營業員MM時,她自然會給你正確的包包啦!

  明白了嗎?(要是還不明白就改行算了!你小子的天賦不在學計算機上~_~!)

  問題2____新建項目(以VC.NET/6.0為例)

  要想編譯一段API代碼,可以考慮走明星路線(我就是我生活中的明星,呵呵,說笑)

  VC.NET

  在新建項目中選擇"Win32項目"為模板,前提是你選擇Visual C++為項目類型

  填了名字下一步后,停下,選擇應用程序設置,給附加選項的空項目打上鉤

  好了,你就可以隨心所欲了,每次看到這個界面,我就忍不住欲火焚身啊!(不要誤解,是寫程序的欲火)

  我先在源文件里添加了一個Cpp文件,叫做first.cpp,為了讓你們爽下,帶碼也考給你們算了,要是覺得太簡單,不要K我啊!(我躲):

  #include <windows.h>

  #include <string.h>

  #include <stdlib.h>

  #include <stdio.h>

  #include <assert.h>

  LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

  HDC hdc;

  HDC hdcmem;

  HBITMAP hBm;

  BITMAP bm;

  int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)

  {

  HWND hwnd;

  MSG msg;

  WNDCLASS wndclass;

  char lpszClassName[]=" ";

  char lpszTitle[]="Example";

  wndclass.cbClsExtra=0;

  wndclass.cbWndExtra=0;

  wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);

  wndclass.hCursor=LoadCursor(NULL,IDI_APPLICATION);

  wndclass.hIcon=LoadIcon(NULL,IDC_ARROW);

  wndclass.hInstance=hInstance;

  wndclass.lpfnWndProc=WndProc;

  wndclass.lpszClassName=lpszClassName;

  wndclass.lpszMenuName=0;

  wndclass.style=0;

  if(!RegisterClass(&wndclass))

  {

  MessageBeep(0);

  return FALSE;

  }

  hwnd=CreateWindow(lpszClassName,

  lpszTitle,

  WS_OVERLAPPEDWINDOW,

  CW_USEDEFAULT,

  CW_ USEDEFAULT,

  CW_USEDEFAULT,

  CW_USEDEFAULT,

  NULL,NULL,

  hInstance,NULL);

  hBm=LoadBitmap(hInstance,"tomato");

  GetObject(hBm,sizeof(BITMAP),(LPVOID)&bm);

  ShowWindow(hwnd,nCmdShow);

  UpdateWindow(hwnd);

  while(GetMessage(&msg,NULL,0,0))

  {

  TranslateMessage(&msg);

  DispatchMessage(&msg);

  }

  return msg.wParam;

  }

  LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

  {

  PAINTSTRUCT ps;

  switch(message)

  {

  case WM_CREATE:

  hdc=GetDC(hwnd);

  hdcmem=CreateCompatibleDC(hdc);

  ReleaseDC(hwnd,hdc);

  case WM_PAINT:

  //back=LoadBitmap(hInstance,

  hdc=BeginPaint(hwnd,&ps);

  SelectObject(hdcmem,hBm);

  BitBlt(hdc,180,80,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);

  EndPaint(hwnd,&ps);

  break;

  case WM_DESTROY:

  DeleteObject(hBm);

  PostQuitMessage(0);

  break;

  default:

  return DefWindowProc(hwnd,message,wParam,lParam);

  }

  return 0;

  }

  然后我在資源文件里添加一個.rc的文件(在添加新項里有),取名叫pic7.rc,接著雙擊pic7.rc就可以看到資源視圖,里面有個文件夾就叫pic7.rc,右擊,選擇添加資源,選擇Bitmap,再導入一張.bmp圖片(system32這個文件夾下這種圖片很多的),右擊導入的圖片,可以看到選項屬性,你把它的ID改為"tomato"(我隨便找了張tomato的圖片,你也可以把它定義為apple啊,或者banana啊什么的都行,只是你要在程序中改下它的名字就行了)好了,perfect!你運行下看看,有了吧!

  現在介紹API的書有,介紹VC.NET的書也有,就是沒有如何實際寫程序時改怎么用的書!連基本的操作都不交,程序就沒法編譯了,程序都沒法去驗證,怎么叫人家繼續學下去呢?中國人注重理論知識一定要過硬,不過就我個人認為還是老外的注重實際操作的學習方式更值得我們去提倡啊!

  問題3____數據類型

  很多人搞不懂API里面"亂七八糟"的數據類型,哎呀,其實是你看的或寫的太少的緣故罷了!

  這個我不說了,雖然確實是個問題,不過有點腦子的人都知道,上網可以找嘛,真的很多的,要是真的找不到,沒辦法,問我好了(我的個人隱私QQ:275913977)

  暫時想不到什么問題了,反正你只要知道程序的入口是int WINAPI WndMain(HINSTANCE,HINSTANCE,LPSTR,int){}

  當事件發生了,就要用到switch(message){case}結構了,因為發生了不同的事件要用不同的方式去處理,這個過程是在函數LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM)里執行的,主要是(WndProc)!



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产96久久久香蕉| 国产精品一久久香蕉国产线看观看| 91精品国产成人www| 黄色成人在线免费| 亚洲视频电影图片偷拍一区| 欧美在线观看www| 96pao国产成视频永久免费| 久久综合久久美利坚合众国| 国产精品高潮呻吟久久av无限| 欧美性xxxxxxxxx| 亚洲性生活视频在线观看| 欧美综合在线观看| 日韩成人在线电影网| 亚洲欧美中文在线视频| 久久久精品国产网站| 国产精品吴梦梦| 中文字幕久热精品在线视频| 亚洲自拍小视频免费观看| 亚洲性69xxxbbb| 成人做爽爽免费视频| 欧美日韩中文字幕在线视频| 日韩欧美亚洲范冰冰与中字| 亚洲美女精品久久| 国产精品青青在线观看爽香蕉| 欧美性xxxxxxx| 97超级碰碰碰久久久| 中文字幕日韩在线观看| 欧美午夜宅男影院在线观看| 粉嫩av一区二区三区免费野| 亚洲国产精彩中文乱码av在线播放| 欧美激情在线有限公司| 日韩精品在线观看视频| 亚洲第一中文字幕在线观看| 欧美亚洲视频在线观看| 尤物99国产成人精品视频| …久久精品99久久香蕉国产| 日本久久精品视频| 91精品视频在线| 久久精品视频在线| 色综合久久88色综合天天看泰| 国产精品爱啪在线线免费观看| 欧美日韩精品国产| 欧美国产日韩精品| 精品国产91久久久久久| 国产久一一精品| 欧美猛交免费看| 91香蕉嫩草神马影院在线观看| 九九热精品视频在线播放| 欧美日韩色婷婷| 欧美性xxxx极品高清hd直播| 亚洲色图15p| 韩国美女主播一区| 26uuu国产精品视频| 69av在线播放| 久久精品国产91精品亚洲| 日本久久中文字幕| 91精品国产综合久久久久久蜜臀| 91高清在线免费观看| 欧美激情视频网址| 亚洲高清不卡av| 亚洲欧美日韩中文在线| 97久久超碰福利国产精品…| 国产91免费观看| 精品国产乱码久久久久久婷婷| 美女少妇精品视频| 亚洲国产91精品在线观看| 91亚洲国产成人精品性色| 亚洲精品第一页| 日韩中文字幕在线播放| 欧美性猛交xxx| 久久99精品国产99久久6尤物| 欧美资源在线观看| 国产91成人在在线播放| 亚洲护士老师的毛茸茸最新章节| 日韩电影中文字幕av| 欧美成人在线影院| 国产午夜精品免费一区二区三区| 91在线色戒在线| 亚洲国产成人精品久久久国产成人一区| 91精品国产777在线观看| 国产精品永久免费视频| 国内精品久久影院| 国产精品女人网站| 一区二区三区久久精品| 久久久噜久噜久久综合| 国产一区二区三区在线播放免费观看| 日韩经典中文字幕| 成人精品一区二区三区| 日韩中文字幕不卡视频| 一本一本久久a久久精品牛牛影视| 国产精品入口免费视| 亚洲人在线视频| 国产精品入口夜色视频大尺度| 中文字幕久久亚洲| 欧美日本高清一区| 日韩高清av一区二区三区| 欧美日韩电影在线观看| 有码中文亚洲精品| 国产脚交av在线一区二区| 欧美电影在线观看高清| 秋霞成人午夜鲁丝一区二区三区| 韩国国内大量揄拍精品视频| 91精品国产91久久久久久| 国产91热爆ts人妖在线| 97人人爽人人喊人人模波多| 日韩亚洲在线观看| 欧美日韩免费看| 国产视频精品一区二区三区| 久久精品一区中文字幕| 97国产精品视频| 亚洲欧美日韩精品久久| 亚洲色图欧美制服丝袜另类第一页| 精品久久久国产精品999| 欧美亚洲激情在线| 国产精品丝袜高跟| 久久久成人精品视频| 日韩美女视频中文字幕| 欧美激情久久久久久| 国产精品久久久久久久久久99| 日韩av影片在线观看| 国产精品极品美女在线观看免费| 日韩av电影在线播放| 久久久www成人免费精品| 91av在线播放视频| 自拍视频国产精品| 国产视频亚洲精品| 久久青草精品视频免费观看| 97国产在线视频| 不卡av电影在线观看| 日韩a**中文字幕| 全色精品综合影院| 国产一区二区三区中文| 国产乱人伦真实精品视频| 日本久久亚洲电影| 亚洲影影院av| 国产免费久久av| 91精品久久久久久久久久久| 亚洲女人天堂视频| 中文字幕久热精品视频在线| 国产激情综合五月久久| xvideos亚洲| 538国产精品视频一区二区| 亚洲人精选亚洲人成在线| 中文字幕亚洲天堂| 91精品国产高清久久久久久| 亚洲精选中文字幕| 国产精品96久久久久久又黄又硬| 国产精品丝袜久久久久久高清| 中文字幕亚洲欧美日韩在线不卡| 欧美性生交大片免费| 亚洲精品一区在线观看香蕉| 亚洲一区二区三区成人在线视频精品| 亚洲精品久久久久久久久久久久| 久久久噜噜噜久久中文字免| 亚洲综合中文字幕在线观看| 亚洲精品videossex少妇| 日韩精品在线看| 国产精品自产拍在线观| 国产精品久久精品| 久久国产精品久久国产精品| 亚洲无av在线中文字幕| 国产一区私人高清影院| 久久精品国产一区二区电影| 国产精品久久久久久久久久小说|