成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++中的C++代碼真的這么復雜嗎

開發(fā) 后端
對第一次接觸到C++代碼的用戶和學者來說,了解C++代碼的編制基礎是非常重要的,那么就先說一下什么是C++語言,所謂C++語言:是一種使用非常廣泛的計算機編程語言。

下面著重講述學習C++時碰到的C++代碼編程的相關問題,以及如何進行編制C++代碼的技巧,如何更好的進行C++代碼編制,掌握了C++代碼編制問題就等于說是整個軟件開發(fā)周期少了不少彎路,降低工作的復雜性。

  1. void main()  
  2. {  
  3.     SERVICE_TABLE_ENTRY ServiceTable[2];  
  4.     ServiceTable[0].lpServiceName = "Name";//線程名字  
  5.     ServiceTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain;//線程入口地址  
  6.     ServiceTable[1].lpServiceName = NULL;  
  7.     ServiceTable[1].lpServiceProc = NULL;//最后一個必須為NULL  
  8.     StartServiceCtrlDispatcher(ServiceTable);// 啟動服務的控制分派機線程  

對于Service程序來說,它一般又由以下四部分組成:main(),ServiceMain()和Handler()當然還有我們的功能實現函數比如MyWork()它們之間的關系,用一個簡單的圖示就可以了然。

其服務程序的基本流程就是由main()調用ServiceMain()而由ServiceMain()調用Handler()和執(zhí)行功能函數MyWork()到現在為止,你以經大體了解了服務程序的流程,按上面的流程一步一步來實現這個后門程序。

1.程序的入口main()函數

服務程序的入口與普通程序一樣也是從main()開始,但不同的是服務程序的main極為簡單,因為它只負責創(chuàng)建分派表并啟動控制分派機,其C++代碼如下:

  1. void main()  
  2. {  
  3.     SERVICE_TABLE_ENTRY ServiceTable[2];  
  4.     ServiceTable[0].lpServiceName = "Name";//線程名字  
  5.     ServiceTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain;//線程入口地址  
  6.     ServiceTable[1].lpServiceName = NULL;  
  7.     ServiceTable[1].lpServiceProc = NULL;//最后一個必須為NULL  
  8.     StartServiceCtrlDispatcher(ServiceTable);// 啟動服務的控制分派機線程  

2. 服務的真正入口ServiceMain()

ServiceMain()是Service程序的真正入口點,它主要完成以下功能,首先注冊一個Handler去處理控制程序或控制面板,Service的控制要求,比如 啟動,停止,暫停重起等,其次就是實現我們的功能操作,其實現C++代碼如下:

  1. VOID WINAPI ServiceMain( DWORD dwArgc, LPTSTR *lpszArgv )  
  2. {  
  3.     DWORD   status = 0;   
  4.     DWORD   specificError = 0xfffffff;   
  5.     ServiceStatus.dwServiceType        = SERVICE_WIN32;   
  6.     ServiceStatus.dwCurrentState       = SERVICE_START_PENDING;   
  7.     ServiceStatus.dwControlsAccepted   = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_PAUSE_CONTINUE;   
  8.     ServiceStatus.dwWin32ExitCode      = 0;   
  9.     ServiceStatus.dwServiceSpecificExitCode = 0;   
  10.     ServiceStatus.dwCheckPoint         = 0;   
  11.     ServiceStatus.dwWaitHint           = 0;   
  12.     //調用RegisterServiceCtrlHandler()注冊一個ServiceHandler函數用來處理程序對Service的控制要求  
  13.     hStatus = RegisterServiceCtrlHandler("ServiceName",(LPHANDLER_FUNCTION)ServiceHandler);   
  14.     if (hStatus==0)   
  15.         return;   
  16.  
  17.     // Handle error condition   
  18.     status = GetLastError();   
  19.     if (status!=NO_ERROR)   
  20.     {   
  21.         ServiceStatus.dwCurrentState       = SERVICE_STOPPED;   
  22.         ServiceStatus.dwCheckPoint         = 0;   
  23.         ServiceStatus.dwWaitHint           = 0;   
  24.         ServiceStatus.dwWin32ExitCode      = status;   
  25.         ServiceStatus.dwServiceSpecificExitCode = specificError;   
  26.         SetServiceStatus(hStatus, &ServiceStatus);   
  27.         return;   
  28.     }   
  29.  
  30.     // Initialization complete - report running status   
  31.     ServiceStatus.dwCurrentState       = SERVICE_RUNNING;   
  32.     ServiceStatus.dwCheckPoint         = 0;   
  33.     ServiceStatus.dwWaitHint           = 0;    
  34.     SetServiceStatus(hStatus, &ServiceStatus);  
  35.  
  36.   //啟動自己的工作線程  
  37.    HANDLE hThread=CreateThread(NULL,0,mainfun,NULL,0,NULL);  
  38.    if(hThread==NULL)  
  39.        return;  

【編輯推薦】

  1. 簡介學習C++總結之談
  2. C++庫函數進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法
責任編輯:chenqingxiang 來源: 深度
相關推薦

2010-01-20 17:23:03

C++編程語言

2010-01-20 10:14:53

C++程序

2010-01-21 14:07:14

CC++聲明

2022-08-22 15:32:59

C++C代碼

2010-01-26 09:24:53

C++語言

2010-01-15 16:45:35

C++語言

2010-01-14 10:34:02

C++語言

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2010-01-22 16:10:12

C++ Builder

2010-01-14 13:24:49

CC++語言

2010-01-20 10:19:55

C++數組

2010-01-25 10:25:19

C++變量

2010-01-27 17:16:52

C++構造函數

2010-01-28 16:31:54

C++類型

2010-01-21 13:33:44

C++基類

2020-08-21 13:20:36

C++If ElseLinux

2011-03-31 09:30:07

CC++聲明

2010-01-26 10:42:26

C++函數

2010-01-21 17:14:40

C++兼容
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 曰批视频在线观看 | 久久久国产精品视频 | 久久久久久成人网 | 国产我和子的乱视频网站 | 精品毛片在线观看 | 成人毛片在线视频 | 欧美天堂 | 亚洲一区二区精品视频 | 91操操操 | 久久久久久免费精品一区二区三区 | 99久久免费观看 | 久久国产精品偷 | 国产午夜精品视频 | 久久人体视频 | 成人网av | 中文字幕在线电影观看 | 婷婷在线免费 | 日本在线一二 | 91免费在线播放 | 成人免费视屏 | 欧美日韩一区在线 | 岛国视频| 99爱免费| 午夜电影网站 | 国产69久久精品成人看动漫 | 欧美精品1区2区3区 精品国产欧美一区二区 | 欧美亚洲视频在线观看 | 久久精品国产一区 | 精品视频一二区 | 日日爱av | 爱草在线| 中文字幕人成乱码在线观看 | 亚洲一区电影 | 97起碰| 男女网站视频 | 亚洲成人观看 | 欧美日韩手机在线观看 | 在线综合视频 | 国产精品美女久久久久久久久久久 | 国产精品国色综合久久 | 亚洲精品久久久一区二区三区 |