在.h檔案的宣告:
//兩個巨集指明了登錄檔中鍵所在的位置
#define sp_reg_path "software\\xfs\\service_providers\\"
#define logicalname "tisreceiptprinter"
//為指向動態庫中函式指標定義指標類別名,用於宣告該型別的指標
typedef int(__stdcall * pprtreset) (void) ;
typedef int(__stdcall * pprtprint) (char * buffer) ;
在.cpp檔案函式外的宣告(本來這部分定義應該在.h檔案中的,可是不知道為什麼放在.h檔案中會發生多重定義的錯誤,有人知道的話請不吝指教):
//用於獲得dll檔案路徑名而用到的函式,以及乙個獲得dll的控制代碼
char gdll_name[255] ;
char glogfile[255];
hinstance handledll;
//宣告動態庫中函式的指標
pprtreset m_pprtreset;
pprtprint m_pprtprint;
接下來的要做的就是在讀取登錄檔,主要用於獲得動態庫的位址;
在函式內,先獲得登錄檔中指定的鍵:
long hkey;
char tmpstr[256];
byte tmpbyte[256];
hkey pkey;
dword tmpdw,tmplen;
//memset函式的作用就是將已申請的的空間tmpstr的首sizeof(tmpstr)個字元的值設為0
memset(tmpstr,0,sizeof(tmpstr));
memset(tmpbyte,0,sizeof(tmpbyte));
//獲得鍵的位址tempstr
strcpy(tmpstr,sp_reg_path);
strcat(tmpstr,logicalname);
//開啟鍵並獲取該鍵控制代碼的指標pkey,除錯成功時hkep的值為error_success
hkey = regopenkeyex(hkey_local_machine,tmpstr,0,key_read,&pkey);
已經獲得鍵的控制代碼,接下來讀取登錄檔中的資料:
//如同上面提到的,如果開啟鍵成功hkey就會等於error_success
if (hkey == error_success)
//獲取動態庫中的函式
m_pprtreset = (pprtreset)getprocaddress(handledll,"prtreset");
m_pprtprint = (pprtprint)getprocaddress(handledll,"prtprint");
tmplen = 255;
//從登錄檔中獲取動態庫所在的路徑,此時tembyte的值就是動態庫所在的路徑
hkey = regqueryvalueex(pkey,"workpath",null,&tmpdw,tmpbyte,&tmplen);
//如果獲得動態庫路徑成功
if (hkey == error_success)
//釋放登錄檔的控制代碼
regclosekey(pkey);
}
以上部分,是使用登錄檔獲得動態庫路徑的過程,接下來就可以開始使用動態庫了:
//這裡是通過顯示方法呼叫dll中的函式
//載入動態連線口
handledll = loadlibrary(gdll_name);
//如果控制代碼為空,說明獲取動態庫失敗
if (handledll==null)
//獲取動態庫中的函式
m_pprtreset = (pprtreset)getprocaddress(handledll,"prtreset");
m_pprtprint = (pprtprint)getprocaddress(handledll,"prtprint");
之後就可以使用動態庫中的函式m_pprtreset()和m_pprtprint()了。
禁止使用登錄檔
1 開啟登錄檔,找到hkey current user software microsoft windows currentversion policies system,如果在policies下面沒有system的話,請請在它下面新建一項 主鍵 將其命名為 system 2 然後在右邊空白處新建乙...
通過登錄檔修改MAC位址
通過登錄檔修改mac位址 2008 11 13 mac位址是繫結在網絡卡上的乙個12位 16進製制字元,它們在出廠的時候已經固化在網絡卡中,它是網絡卡在網路中的身份識別。有很多網路環境中都用到了ip和 mac繫結的情況。而 mac位址是先調入記憶體中後傳輸出去的,所以,我們可以通過修改其 mac位址...
通過登錄檔修改tcp ip篩選
regedit e d 1.reg hkey local machine system controlset001 services tcpip 匯出登錄檔裡關於tcp ip篩選的第一處 d test.exe regedit e d 2.reg hkey local machine system c...