c c 編寫window服務的授權服務 二

2021-06-02 07:54:44 字數 3011 閱讀 7780

//c/c++編寫window服務的授權服務(二)

//定義授權服務的標頭檔案licenseservice.h

#pragma once

//建立工程:win32控制平台應用程式

//用c/c++編寫的window服務一例

//安裝與反安裝批處理.bat

//方法一:

//echo sc delete licenseservice

//echo sc create licenseservice binpath= e:\debug\licenseservice.exe

//方法二:

uninstall

install

exec

#include #include #include #include //#include #include #include #pragma comment(lib,"ws2_32.lib")

#define sleep_time 5000

#define logfilename "licenseservice.txt"

#define max_pending_connects 4

using namespace std;

char* servicename="licenseservice";

enum enumrunstate

;enumrunstate runstate;

wchar* charptr2acharptr(const char* src);

int writetolog(char* str);

char* getcurdir(void);

char* curexedir; //全域性變數當前可執行檔案所在目錄

int replacestr(char *ssrc, char *smatchstr, char *sreplacestr);

char* unionstr(const char* a,const char* b);

bool eqstr(const char* a,const char* b);

bool isnumber(string str);

char* winapi_year_month_day();

//日期比較函式

unsigned long compare_to_date(char* datetime1,char* datetime2);

unsigned long compare_to_current_date(char* datetime);

unsigned long validate_date(char* date,unsigned short * year,unsigned short * month,unsigned short * day);

//獲取機器碼函式

char* getmachinecode(void);

char* getcpuid(void);

char* md5(char* src);

//有使用權函式

bool islencense(void);

//獲取serverconfig.ini引數函式

bool getserverconfig_ini(void);

//------------------------------------------

//定義檔案操作的函式

//屬性

file* fp;

char* filepath;

//方法

bool openfile(void);

int endfile(void);

char* nextline(void);

int closefile(void);

//------------------------------------------

//伺服器配置檔案的全域性引數變數

char* host;

char* port;

char* todate;

char* code;

//------------------------------------------

//定義變數和方法

service_status servicestatus;

service_status_handle hstatus;

handle terminateevent; //事件

handle threadhandle; //執行緒

//定義伺服器控制函式

void servicemain(int argc,char** argv);

void controlhandler(dword request);

//開始主機+埠監聽函式 //socket監聽程式函式

void starthostportlisten(char* ipaddr,int port);

dword winapi handlesocket(lpvoid lpparam); //處理socket請求函式

//int initservice();

bool runservice(wchar* ssvcname);

void resumeservice();

void pauseservice();

void stopservice();

void terminate(dword error);

//bool sendstatustoscm (dword dwcurrentstate,

dword dwwin32exitcode,

dword dwservicespecificexitcode,

dword dwcheckpoint,

dword dwwaithint);

//void installservice();

void uninstallservice();

//dword winapi servicethread(lpdword param);

//---the--end----

標準C C 的DLL編寫

dll也就是動態鏈結庫,使用dll程式設計的好處大家應當都知道了吧,可是怎麼樣來作呢,今天我就來說說。首先,你要確定你要匯出那些個函式,然後你就在你要匯出的函式名前加上下面一句話 輸出函式的字首 define dll export extern c declspec dllexport dll ex...

建立SVN的Window服務

在cmd中執行這樣的 新增windown 服務 sc create svnserve binpath svnserve.exe的完整路徑 service root 剛才建立的倉庫的路徑 displayname subversion depend tcpip start auto obj nt aut...

svchost服務的編寫

activex dll不行,要寫成標準的api dll才行,要匯出乙個函式servicemain 以下為一段delphi的 library servicedll uses sysutils,classes,winsvc,system,windows var svcstatshandle servic...