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

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

淺談API學習經驗

2020-07-14 13:42:39
字體:
來源:轉載
供稿:網友
  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
日韩av在线免费观看| 欧美日韩国产成人在线观看| 国产亚洲精品久久久久久牛牛| 亚洲深夜福利网站| 欧美黑人xxxⅹ高潮交| 国产精品久久99久久| 欧美激情伊人电影| 欧美—级高清免费播放| 午夜精品久久久久久久99黑人| 色哟哟网站入口亚洲精品| 亚洲美女又黄又爽在线观看| 国产精品av在线| 96sao精品视频在线观看| 精品在线欧美视频| 日韩欧美在线观看| 国产亚洲一区精品| 日本欧美一级片| 亚洲美女精品成人在线视频| 欧美成人免费网| 91成人福利在线| 成人精品视频在线| 久久成人精品电影| 日韩欧美在线看| 一区二区三区回区在观看免费视频| 日韩中文在线中文网三级| 亚洲免费精彩视频| 成人乱人伦精品视频在线观看| 精品久久香蕉国产线看观看亚洲| 成人黄色影片在线| 国产精品视频白浆免费视频| 精品久久久久久中文字幕大豆网| 国产精品美女在线观看| 国产精品久久久久久久电影| 亚洲级视频在线观看免费1级| 国产美女精品免费电影| 国产在线视频不卡| 亚洲精品国精品久久99热| 日韩黄色av网站| 久久久久久久久电影| 日韩电影网在线| 亚洲精品视频在线播放| 日本在线观看天堂男亚洲| 亚洲最大av网站| 伊人成人开心激情综合网| 欧美性猛交xxxx免费看| 最近免费中文字幕视频2019| 欧美香蕉大胸在线视频观看| 国产亚洲精品激情久久| www.亚洲成人| 欧美日韩国产一区中文午夜| 91精品国产高清自在线| 精品av在线播放| 97在线观看免费高清| 亚洲大胆人体在线| 最新国产精品亚洲| 亚洲成人激情图| 97激碰免费视频| 国产最新精品视频| 国产精品视频久久| 国产成人精品在线| 国产午夜精品视频| 国产精品99久久久久久白浆小说| 欧美在线视频观看免费网站| 青青久久aⅴ北条麻妃| 伊人亚洲福利一区二区三区| 国产亚洲日本欧美韩国| 亚洲一区二区三区在线免费观看| 色偷偷88888欧美精品久久久| 在线观看不卡av| 久久激情视频免费观看| 国产aⅴ夜夜欢一区二区三区| 国产精品专区第二| 日韩av资源在线播放| 成人高清视频观看www| 国产91色在线|| 国产精品久久久久久久久免费看| 国产成人+综合亚洲+天堂| 欧美成人午夜激情在线| 久久精品国产久精国产一老狼| 日韩美女免费观看| 超薄丝袜一区二区| 亚洲欧美日韩国产中文专区| 亚洲天堂网在线观看| 久久久免费精品| 国产精品亚洲第一区| 欧美日韩在线观看视频| 欧美专区在线观看| 奇米成人av国产一区二区三区| 中文字幕欧美在线| 欧美第一淫aaasss性| 国产精品嫩草影院一区二区| 国产亚洲精品久久久| 国产99视频精品免视看7| 国产成人在线精品| 日韩电影中文字幕在线观看| 日韩国产中文字幕| 91国产中文字幕| 亚洲高清一二三区| 91欧美视频网站| 国产一区二区三区直播精品电影| 亚洲性视频网站| 国产精品欧美激情| 国产中文日韩欧美| 91精品一区二区| 欧美日韩免费区域视频在线观看| 国产一区二区视频在线观看| 亚洲国产成人久久综合一区| 91精品国产综合久久男男| 亚洲国产美女久久久久| 国产精品高潮视频| 日韩精品黄色网| 欧美精品午夜视频| 日韩精品在线观| 一区二区在线免费视频| 久久99精品视频一区97| 国产精品吊钟奶在线| 日韩电影大全免费观看2023年上| 欧美成人免费播放| 久久影院资源网| 最近2019年中文视频免费在线观看| 韩国国内大量揄拍精品视频| 亚洲美女av电影| 久久香蕉精品香蕉| 日韩国产欧美精品在线| 中文字幕日韩欧美在线| 国产精品国语对白| 中文字幕在线观看亚洲| 欧美又大又粗又长| 久久成人精品一区二区三区| 精品国产欧美一区二区三区成人| 日韩精品极品在线观看播放免费视频| 国产精品99久久久久久久久久久久| 国产伦精品一区二区三区精品视频| 78色国产精品| 久久精品91久久香蕉加勒比| 在线观看精品自拍私拍| 日本一区二区三区四区视频| 精品亚洲一区二区三区四区五区| 91午夜理伦私人影院| 18一19gay欧美视频网站| 久久精品视频亚洲| 欧洲一区二区视频| 精品成人国产在线观看男人呻吟| 欧美福利视频在线| 日本久久久久久| 欧美日韩国产色视频| 欧美亚洲在线播放| 日韩激情av在线免费观看| 黄色成人av网| 久久久国产精彩视频美女艺术照福利| 久久人人爽人人爽人人片av高请| 成人性生交大片免费看视频直播| 日本一欧美一欧美一亚洲视频| 欧美大片大片在线播放| 成人免费视频97| 国产精品高精视频免费| 欧美日韩亚洲精品一区二区三区| 中文字幕国产精品| 欧美日韩精品在线观看| 国产精品自拍偷拍视频| 成人免费视频在线观看超级碰| 91豆花精品一区| 日韩成人在线免费观看| 日韩免费高清在线观看|