青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

zhiye_wang

向星空仰望的越深,越發現自己的渺小

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  31 隨筆 :: 1 文章 :: 2 評論 :: 0 Trackbacks

#

2.1 安裝 Docker 的先決條件

運行 64 位 CPU 架構的計算機,Docker 目前不支持 32 位 CPU

運行 Linux 3.8 或者更高版本內核。

內核必須支持一種適合的存儲驅動 (storage driver),例如 Device Mapper, AUFS

內核必須支持并開啟 cgroup 和命名空間 (namespace) 功能

2.2 Ubuntu 中安裝 Docker

官方支持版本:

Ubuntu Trusty 14.04 LTS 64 位

Ubuntu Precise 12.04 LTS 64 位

但是并不意味著其他的Ubuntu或者Debian版本就不能安裝Docker,只要有合適的內核和

Docker所必須的支持即可。

2.2.1 檢查前提條件

# 我的環境是 windows 7 旗艦版 64 位, 6GB 內存。

# 安裝了 Vmware 虛擬機,里面安裝了一個 Ubuntu 15.10 

Technorati 標記:
[#1#cloudsoar@cloudsoar-virtual-machine ~]$uname -a
Linux cloudsoar-virtual-machine 3.19.0-15-generic #15-Ubuntu SMP Thu Apr 16 23:32:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

可以看到我的內核是 3.19.0 x86_64 的內核,因此不需要升級內核

2 查看Device Mapper

任何 Ubuntu 12.04 或者更高版本都已經安裝了Device Mapper,如下命令可以確認是否安裝

[#2#cloudsoar@cloudsoar-virtual-machine ~]$ls -l /sys/class/misc/device-mapper lrwxrwxrwx 1 root root 0  3月 14 15:26 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper 

2.2.2 安裝 Docker

首先需要添加 Docker 的 APT 倉庫,添加之前需要確認已經安裝了curl命令

[#3#cloudsoar@cloudsoar-virtual-machine ~]$whereis curl curl: /usr/bin/curl /usr/share/man/man1/curl.1.gz [#4#cloudsoar@cloudsoar-virtual-machine ~]$sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" 

如果沒安裝,使用 apt-get –y install curl 命令安裝

接下來添加 Docker 倉庫的 GPG 密鑰

[#7#cloudsoar@cloudsoar-virtual-machine ~]$curl -s https://get.docker.io/gpg | sudo apt-key add - gpg: 找不到有效的 OpenPGP 數據。

我的虛擬機是今天安裝的新的。這里提示報錯,找不到OpenPGP數據。

網上差找到方法:

[#10#cloudsoar@cloudsoar-virtual-machine ~]$sudo curl -s https://get.docker.io/gpg | sudo apt-key add - gpg: 找不到有效的 OpenPGP 數據。 [#11#cloudsoar@cloudsoar-virtual-machine ~]$gpg --keyserver pgpkeys.mit.edu --recv-key 9AA38DCD55BE302B gpg: 已創建目錄‘/home/cloudsoar/.gnupg’ gpg: 新的配置文件‘/home/cloudsoar/.gnupg/gpg.conf’已建立 gpg: 警告:在‘/home/cloudsoar/.gnupg/gpg.conf’里的選項于此次運行期間未被使用 gpg: 鑰匙環‘/home/cloudsoar/.gnupg/secring.gpg’已建立 gpg: 鑰匙環‘/home/cloudsoar/.gnupg/pubring.gpg’已建立 gpg: 下載密鑰‘55BE302B’,從 hkp 服務器 pgpkeys.mit.edu gpg: /home/cloudsoar/.gnupg/trustdb.gpg:建立了信任度數據庫 gpg: 密鑰 55BE302B:公鑰“Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org>”已導入 gpg: 沒有找到任何絕對信任的密鑰 gpg: 合計被處理的數量:1 gpg:               已導入:1  (RSA: 1) [#12#cloudsoar@cloudsoar-virtual-machine ~]$gpg -a --export  9AA38DCD55BE302B | sudo apt-key add - OK 

完成后更新源,sudo apt-get update

此時,我用虛擬機創建了一個快照備份,以便以后有問題需要恢復的時候方便使用。

下面開始安裝Docker

[#14#cloudsoar@cloudsoar-virtual-machine ~]$sudo apt-get install lxc-docker 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關系樹 正在讀取狀態信息... 完成 將會安裝下列額外的軟件包:   aufs-tools cgroupfs-mount git git-man liberror-perl lxc-docker-1.9.1 建議安裝的軟件包:   git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch   git-cvs git-mediawiki git-svn 下列【新】軟件包將被安裝:   aufs-tools cgroupfs-mount git git-man liberror-perl lxc-docker lxc-docker-1.9.1 升級了 0 個軟件包,新安裝了 7 個軟件包,要卸載 0 個軟件包,有 322 個軟件包未被升級。 需要下載 12.1 MB 的軟件包。 解壓縮后會消耗掉 53.8 MB 的額外空間。 您希望繼續執行嗎? [Y/n] y 

整個下載過程可能有點慢,我這里是電信100Mb的光纖,下載速度是10kb/s左右

安裝完畢后,使用 docker info 查看是否安裝并運行了

[#15#cloudsoar@cloudsoar-virtual-machine ~]$sudo docker info Containers: 0 Images: 0 Server Version: 1.9.1 Storage Driver: aufs  Root Dir: /var/lib/docker/aufs  Backing Filesystem: extfs  Dirs: 0  Dirperm1 Supported: true Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.19.0-15-generic Operating System: Ubuntu 15.04 CPUs: 1 Total Memory: 2.43 GiB Name: cloudsoar-virtual-machine ID: RL5D:42DH:XMAC:GDQY:VWPJ:3YGM:UHQK:K3QD:USCH:TEGA:32PF:HUNB 

2.2.3 Docker 和 UFW

ubuntu中,如果使用 UFW (Uncomplicated Firewall) 還需要啟動 UFW 的數據包轉發

Docker才能正常運行,需要對 /etc/default/uwf 文件做出一點改動

將 DEFAULT_FORWARD_POLICY="DROP" 改為 “ACCEPT”, 保存從新加載即可.

2.9 Docker 守護進程

當 Docker 安裝完畢后, 默認會立即啟動 Docker 守護進程. 監聽 /var/run/docker.sock 這

個 Unix 套接字文件來獲取來自客戶端的 Docker 請求. 如果系統存在名為 docker 的用戶組

的話,Docker 會將此套接字文件的所有者設置為 docker 用戶組,這樣 docker 用戶組所

有用戶都可以直接運行 Docker 不用使用 sudo。

2.9.1 配置 Docker 守護進程

[#19#cloudsoar@cloudsoar-virtual-machine ~]$sudo /usr/bin/docker -d -H tcp://0.0.0.0:2375
這條命令會將Docker守護進程綁定到宿主機上的所有網絡接口。

2.9.2 檢查守護進程是否在運行

[#2#cloudsoar@cloudsoar-virtual-machine ~]$sudo status docker [sudo] password for cloudsoar:  status: 無法連接到 Upstart: Failed to connect to socket /com/ubuntu/upstart: 拒絕連接 
我這里報錯。

今天暫時還未解決,有待進一步查找資料。

posted @ 2016-03-14 18:00 zhiye_wang 閱讀(788) | 評論 (0)編輯 收藏

1 Debian 安裝 ssh2

首先確保你的Debian或者linux安裝ssh并開啟ssh服務

Debian和ubuntu的安裝方法一樣,只要源OK的話,可以直接安裝

1 apt-get install openssh-server

啟動SSH服務

/etc/init.d/ssh start

如果是非管理員用戶請使用 su 命令切換到 root 用戶執行。

2 windows 安裝 SecureCRT

網上下載SecureCRT直接安裝即可。

只需要輸入IP,protocol選擇SSH2即可,端口22



說明:

如果不知道linux的IP, Debina請使用 :su ifconfig 查看。

否則會報錯說沒有ifconfig這個命令。

三 效果如圖

posted @ 2016-03-10 15:21 zhiye_wang 閱讀(426) | 評論 (0)編輯 收藏

1 首先下載mysql的解壓版的rar安裝包

1 將安裝包解壓到安裝路徑.
C:\Program Files (x86)\MySQL

2 將安裝路徑下的bin追加到環境變量"PATH"中
C:\Program Files (x86)\MySQL\bin

3 修改my.ini,增加兩行
basedir=C:\Program Files (x86)\MySQL\
datadir=C:\Program Files (x86)\MySQL\data\

4 執行安裝
mysqld -install

5 啟動服務
net start mysql

6 首次登陸
mysql -u root -p

6 卸載
mysqld -remove
posted @ 2016-03-10 15:17 zhiye_wang 閱讀(123) | 評論 (0)編輯 收藏

一 在C源文件中調用C++封裝的接口

例如:

要想在A.c文件中,調用生命在B.h,實現在B.cpp中的接口bool getMAC(char *mac_addr);

其實現方法 B.cpp 如下:
 1 // B.cpp
 2 
 3 #ifndef _cplusplus
 4 #define _cplusplus
 5 #endif
 6 
 7 #include <stdio.h>
 8 
 9 bool getMAC(char *mac_addr)
10 {
11     // your code
12 
13 }

B.h 頭文件的聲明為:

 1 // B.h
 2 
 3 #ifndef _B_H
 4 #define _B_H
 5 
 6 #ifdef __cplusplus    //__cplusplus是cpp中自定義的一個宏
 7 extern "C" {          //告訴編譯器,這部分代碼按C語言的格式進行編譯,而不是C++的
 8 #endif
 9 
10 bool getMAC(char *mac_addr);
11 
12 #ifdef __cplusplus
13 }
14 #endif 
15 
16 #endif

A.c 中正常調用即可

 1 // A.c 
 2 
 3 #include "B.h"
 4 #include <stdio.h>
 5 
 6 int main()
 7 {
 8     bool bRet = false;
 9     char chMac[16] = {0};
10 
11     bRet = getMAC(chMac);
12 
13     return 0;
14 }
posted @ 2016-03-10 15:16 zhiye_wang 閱讀(221) | 評論 (0)編輯 收藏

一 近期需要用到PostScript,查詢資料學習PS的語法
簡單的畫一個圓的例子
1 %!PS-Adobe-3.0
2 /inch{72 mul} def
3 4.25 inch 5.5 inch
4 1.5 inch
5 360 arc 
6 0.1 inch setlinewidth
7 stroke
8 showpage

%Title:用粗線畫一個圓
%以‘%’開頭的第一段語句表示注釋,第二段語句定義了名字對象‘inch’,接著定義圓的中心位置(4.25,5.5),半徑1.5;然后畫角度為360°的圓;最后定義粗線的寬度0.1,畫出粗線的路徑進行顯示
posted @ 2016-03-10 15:14 zhiye_wang 閱讀(186) | 評論 (0)編輯 收藏

linux中有三種標準輸入輸出,分別是STDIN,STDOUT,STDERR,對應的數字是0,1,2。
 
STDIN就是標準輸入,默認從鍵盤讀取信息;
STDOUT是標準輸出,默認將輸出結果輸出至終端,也就是顯示器之類的東西;
STDERR是標準的錯誤信息,默認也會顯示在終端上。
 
由于STDOUT與STDERR都會默認顯示在終端上,為了區分二者的信息,
就有了編號的0,1,2的定義,用1表示STDOUT,2表示STDERR。

$#: 命令行參數的個數

$0:script 的名字

$?: shell指令執行結果,若前一個指令執行正確,則該值為0,錯誤為非0

posted @ 2016-03-10 15:11 zhiye_wang 閱讀(170) | 評論 (0)編輯 收藏

摘要
----
項目需要對服務器上的某個路徑下的目錄,修改權限:給Users用戶組的用戶添加修改寫入權限。

原理
----
通過批處理腳本實現,命令使用 icacls 修改ACL 來達到修改權限的目的。

操作
----
想要對 D:\test directory 路徑添加User用戶組的修改權限,可用如下語句

icacls %1 /grant Users:(OI)(CI)M

但是 icacls 只支持windows server 2003 sp2 及其以上版本
如果您的系統是 windows server 2003 sp1版本,請使用如下命令

cacls %1 //G Users:C

/E 表示增加權限,而不是用現有的權限替換
Users:C 表示對 Users用戶組添加修改權限
%1 代表您的路徑

icacls D:\test directory” /grant Users:(OI)(CI)M

cacls “
D:\test directory” //G Users:C


posted @ 2015-01-20 15:59 zhiye_wang 閱讀(162) | 評論 (0)編輯 收藏

一 說明
      mysql.lib 提供了很多方便的操作,同時結合 vector 使用十分方便。

二 使用
    1 聲明需要用到的變量
   
1 static MYSQL s_mysql[DATABASE_CONNECTION_NUM];
2 static char mysql_user[50]="root";
3 static char mysql_password[50]="";

    2 初始化數據庫連接
初始化連接過程中,根據自己的需要,是否有包含中文字符,設置數據庫的屬性。

 1 bool InitDBConnetion()
 2 {
 3     int i = 0;
 4     bool bOK = false;
 5 
 6     for(i = 0;i < DATABASE_CONNECTION_NUM;i++)
 7     {
 8         mysql_init(&s_mysql[i]);
 9         mysql_options(&s_mysql[i], MYSQL_SET_CHARSET_NAME, "utf8");
10 
11         if(NULL == mysql_real_connect(&s_mysql[i], "localhost", mysql_user, mysql_password, DB_NAME, DB_PORT, NULL, 0))
12         {
13             printf("Failed to connect to database: Error: %s\n", mysql_error(&s_mysql[i]));
14             break;
15         }
16     }
17 
18     if(i < DATABASE_CONNECTION_NUM)
19     {
20         CloseDBConnection();
21     }
22     else
23     {
24         bOK = true;
25     }
26 
27     return bOK;
28 }
29 
   
    3 查詢并保存結果

1 typedef struct
2 {
3     char chGroupName[256];
4     unsigned char uchGroupInternalId[4];
5     unsigned char uchGroupMemberNum[3];
6 
7 }GROUP_INFO;

 1 static int GetUserGroupInfo(vector<GROUP_INFO> &vGroup, MYSQL *pMySqlConnection)
 2 {
 3     int groupNum = 0;
 4     MYSQL_RES *pResult = NULL;
 5     do 
 6     {
 7         char chSql[1024={0};
 8         sprintf(chSql, "select group_id,group_name from `cloudsoarmanage`.`user_group`");
 9         if (0 != mysql_query(pMySqlConnection,chSql))
10         {
11             break;
12         }
13 
14         pResult = mysql_store_result(pMySqlConnection);
15         if (NULL == pResult)
16         {
17             break;
18         }
19 
20         MYSQL_ROW sql_row;
21         int groupId = 0;
22         while (sql_row = mysql_fetch_row(pResult))
23         {
24             GROUP_INFO info = {0};
25             strcpy(info.chGroupName, sql_row[1]);
26             groupId = atoi(sql_row[0]);
27             info.uchGroupInternalId[0= groupId & 0xFF;
28             info.uchGroupInternalId[1= (groupId>>8& 0xFF;
29             info.uchGroupInternalId[2= (groupId>>16& 0xFF;
30             info.uchGroupInternalId[3= (groupId>>24& 0xFF;
31             vGroup.push_back(info);
32             ++groupNum;
33         }
34 
35     } while (0);
36 
37     if (NULL != pResult)
38     {
39         mysql_free_result(pResult);
40     }
41 
42     return groupNum;
43 }

1 void CloseDBConnection()
2 {
3     int i = 0;
4 
5     for(i = 0; i < DATABASE_CONNECTION_NUM; i++)
6     {
7         mysql_close(&s_mysql[i]);
8     }
9 }


























posted @ 2015-01-12 17:57 zhiye_wang 閱讀(145) | 評論 (0)編輯 收藏

 在服務端數據庫的處理當中,涉及中文字符的結構體字段,需要轉為Utf8后再存儲到表項中。
從數據庫中取出包含中文字符的字段后,如果需要保存到char *類型的結構體成員中,需要轉為Ansi后再保存。
從數據庫中取出類型數字的字段后,如果需要保存到int型的結構體成員中,需要調用atoi函數進行處理后再保存。

  1 static char *AnsiToUtf8(char *pchAnsi)
  2 {
  3     int uSize=0;
  4     WCHAR *pwText =NULL;
  5     char *pchUtf8=NULL;
  6     int nUtf8Len = 0;
  7 
  8     if(NULL == pchAnsi)
  9     {
 10         return NULL;
 11     }
 12 
 13     do 
 14     {
 15         uSize = MultiByteToWideChar(CP_ACP,0,pchAnsi,-1,NULL,0);
 16         if(uSize <=0)
 17         {
 18             break;
 19         }
 20         pwText = (wchar_t*)malloc((uSize+1)*sizeof(wchar_t));
 21         if(!pwText)
 22         {
 23             break;
 24         }
 25 
 26         memset((void*)pwText,0,sizeof(wchar_t)*(uSize+1));
 27         MultiByteToWideChar(CP_ACP,0,pchAnsi,-1,pwText,uSize);
 28 
 29         //widechar to utf8
 30         nUtf8Len = WideCharToMultiByte(CP_UTF8, 0, pwText, -1, NULL, 0, NULL, NULL);
 31         if (0 >= nUtf8Len)
 32         {
 33             break;
 34         }
 35 
 36         pchUtf8=(char *)malloc(nUtf8Len+2);
 37         if(NULL == pchUtf8)
 38         {
 39             break;
 40         }
 41         memset(pchUtf8,0,nUtf8Len+2);
 42 
 43         nUtf8Len = WideCharToMultiByte(CP_UTF8, 0, pwText, -1, pchUtf8, nUtf8Len, NULL, NULL);
 44         if (0 >= nUtf8Len)
 45         {
 46             free(pchUtf8);
 47             pchUtf8 = NULL;
 48             break;
 49         }
 50 
 51 
 52     } while (0);
 53 
 54     if(NULL!=pwText)
 55     {
 56         free(pwText);
 57     }
 58 
 59     return pchUtf8;
 60 }
 61 
 62 static char *Utf8ToAnsi(char *pchUtf8)
 63 {
 64     int uSize=0;
 65     WCHAR *pwText =NULL;
 66     char *pchAnsic=NULL;
 67     int ansicStrLen = 0;
 68 
 69     if(NULL == pchUtf8)
 70     {
 71         return NULL;
 72     }
 73 
 74     do 
 75     {
 76         uSize = MultiByteToWideChar(CP_UTF8,0,pchUtf8,-1,NULL,0);
 77         if(uSize <=0)
 78         {
 79             break;
 80         }
 81         pwText = (wchar_t*)malloc((uSize+1)*sizeof(wchar_t));
 82         if(!pwText)
 83         {
 84             break;
 85         }
 86         memset((void*)pwText,0,sizeof(wchar_t)*(uSize+1));
 87         MultiByteToWideChar(CP_UTF8,0,pchUtf8,-1,pwText,uSize);
 88 
 89         //widechar to utf8
 90         ansicStrLen = WideCharToMultiByte(CP_ACP, 0, pwText, -1, NULL, 0, NULL, NULL);
 91         if (0 >= ansicStrLen)
 92         {
 93             break;
 94         }
 95 
 96         pchAnsic=(char *)malloc(ansicStrLen+2);
 97         if(NULL == pchAnsic)
 98         {
 99             break;
100         }
101         memset(pchAnsic,0,ansicStrLen+2);
102 
103         ansicStrLen = WideCharToMultiByte(CP_ACP, 0, pwText, -1, pchAnsic, ansicStrLen, NULL, NULL);
104         if (0 >= ansicStrLen)
105         {
106             free(pchAnsic);
107             pchAnsic = NULL;
108             break;
109         }
110 
111     } while (0);
112 
113     if(NULL != pwText)
114     {
115         free(pwText);
116     }
117 
118     return pchAnsic;
119 
120 }
posted @ 2015-01-12 17:27 zhiye_wang 閱讀(413) | 評論 (0)編輯 收藏

 創建鍵 RegCreateKeyEx

  1 int SetRecordVideoSavedDays(int newSavedDays)
  2 {
  3     HKEY hSubKey = NULL;
  4     LONG lRet    = 0;
  5     DWORD dwType = 0;
  6     int iRet     = 0;
  7     
  8     do 
  9     {
 10         if (newSavedDays < 0)
 11         {
 12             printf("error: input negative number\n");
 13             break;
 14         }
 15         lRet = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Cloudsoar 3C\\ServerInfo",
 16                                 0, NULL, REG_OPTION_NON_VOLATILE, 
 17                                 KEY_ALL_ACCESS, NULL, &hSubKey, NULL);       
 18         if (ERROR_SUCCESS != lRet)
 19         {
 20             printf("Create Reg failed\n");
 21             break;
 22         }
 23         
 24         lRet = RegSetValueEx(hSubKey, "VideoSavedDays"0, REG_DWORD, (BYTE*)&newSavedDays, sizeof(newSavedDays));
 25         if (ERROR_SUCCESS != lRet)
 26         {
 27             printf("Set reg value VideoSavedDays failed\n");
 28             break;
 29         }
 30         
 31         iRet = (int)newSavedDays;
 32     } while (0);
 33     
 34     if(NULL != hSubKey)
 35     {
 36         RegCloseKey(hSubKey);
 37         hSubKey = NULL;
 38     }
 39   
 40     
 41     return iRet;
 42 }
 43 
 44 // parameter1: out, save video saved path
 45 // parameter2: in, save path length
 46 BOOL GetRecordVideoSavedPath(char *pchPath,int pathBufLen)
 47 {
 48     HKEY hSubKey    = NULL;
 49     LONG lRet       = 0;
 50     DWORD dwType    = 0;
 51     DWORD dwPathLen = pathBufLen;
 52     BOOL bRet       = FALSE;
 53     
 54     do 
 55     {
 56         lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
 57                             "SOFTWARE\\Cloudsoar 3C\\ServerInfo",
 58                             0, KEY_READ, &hSubKey);
 59         if (ERROR_SUCCESS != lRet)
 60         {
 61             printf("Open reg value VideoSavedPath failed\n");
 62             break;
 63         }
 64         
 65         lRet = RegQueryValueEx(hSubKey, "VideoSavedPath"
 66                                 0&dwType, (LPBYTE)pchPath, &dwPathLen);
 67         if (ERROR_SUCCESS != lRet)
 68         {
 69             printf("Query reg value VideoSavedPath failed\n");
 70             break;
 71         }
 72         
 73         bRet = TRUE;
 74         
 75     } while (0);
 76     
 77     RegCloseKey(hSubKey);
 78   
 79     return bRet;
 80 }
 81 
 82 BOOL SetRecordVideoSavePath(char *pchNewPath)
 83 {
 84     HKEY hSubKey  = NULL;
 85     LONG lRet     = 0;
 86     DWORD dwType  = 0;
 87     DWORD dwState = 0;
 88     BOOL bRet     = FALSE;
 89 
 90     do 
 91     {
 92         if (NULL == pchNewPath)
 93         {
 94             printf("error: input negative new path\n");
 95             break;
 96         }
 97         lRet = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Cloudsoar 3C\\ServerInfo",
 98             0, NULL, REG_OPTION_NON_VOLATILE, 
 99             KEY_ALL_ACCESS, NULL, &hSubKey, &dwState);       
100         if (ERROR_SUCCESS != lRet)
101         {
102             printf("Create Reg VideoSavedPath failed\n");
103             break;
104         }
105         
106         lRet = RegSetValueEx(hSubKey, "VideoSavedPath"0, REG_SZ, (PBYTE)pchNewPath, sizeof(pchNewPath));
107         if (ERROR_SUCCESS != lRet)
108         {
109             printf("Set reg value VideoSavedPath failed\n");
110             break;
111         }
112 
113         bRet = TRUE;
114     } while (0);
115 
116     RegCloseKey(hSubKey);
117 
118     return bRet;
119 }

函數原型
 1 LONG RegCreateKeyEx(
 2 HKEY hKey, // handle to open key
 3 LPCTSTR lpSubKey, // subkey name
 4 DWORD Reserved, // reserved
 5 LPTSTR lpClass, // class string
 6 DWORD dwOptions, // special options
 7 REGSAM samDesired, // desired security access
 8 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // inheritance
 9 PHKEY phkResult, // key handle
10 LPDWORD lpdwDisposition // disposition value buffer
11 );
參數說明
 1 hKey:   要打開鍵的句柄或以下預定義句柄
 2 HKEY_CLASSES_ROOT
 3 HKEY_CURRENT_USER
 4 HKEY_LOCAL_MACHINE
 5 HKEY_USERS
 6 lpSubKey:   指向一個用于定義子鍵路徑的字符串
 7 Reserved,dwOptions,samDesired:   置0
 8 lpClass,lpSecurityAttributes:   置NULL
 9 phkResult:   用于接收鍵句柄
10 lpdwDisposition:   接收的相關信息,取值如下
11 REG_CREATED_NEW_KEY   創建成功
12 REG_OPENED_EXISTING_KEY    鍵已存在

打開鍵 RegOpenKeyEx
函數原型
1 LONG RegOpenKeyEx(
2     HKEY hKey, // handle to open key
3     LPCTSTR lpSubKey, // subkey name
4     DWORD ulOptions, // reserved
5     REGSAM samDesired, // security access mask
6     PHKEY phkResult // handle to open key
7 );

參數說明
1 hKey:     要打開鍵的句柄或以下預定義句柄
2 HKEY_CLASSES_ROOT
3 HKEY_CURRENT_USER
4 HKEY_LOCAL_MACHINE
5 HKEY_USERS
6 lpSubKey:   指向一個用于定義子鍵路徑的字符串
7 ulOptions:   保留位,置0
8 samDesired:   打開鍵后鍵的操作權限
9 phResult:   接收打開的鍵的句柄

修改/添加鍵值 RegSetValueEx
函數原型
1 LONG RegSetValueEx(
2     HKEY hKey, // handle to key
3     LPCTSTR lpValueName, // value name
4     DWORD Reserved, // reserved
5     DWORD dwType, // value type
6     CONST BYTE *lpData, // value data
7     DWORD cbData // size of value data
8 );

參數說明
 1 hKey:   打開鍵的句柄或以下預定義句柄
 2 HKEY_CLASSES_ROOT
 3 HKEY_CURRENT_USER
 4 HKEY_LOCAL_MACHINE
 5 HKEY_USERS
 6 lpValueName:   鍵值的名稱
 7 Reserved:   保留位,置0
 8 dwType:   鍵值的類型
 9 lpData:   鍵值
10 cbData:   鍵值數據長度
posted @ 2015-01-12 17:22 zhiye_wang 閱讀(155) | 評論 (0)編輯 收藏

僅列出標題
共4頁: 1 2 3 4 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美一区二区视频| 亚洲国产高清aⅴ视频| 亚洲国产小视频| 午夜视频一区在线观看| 亚洲人成在线观看网站高清| 亚洲第一网站| 日韩一二三区视频| 亚洲一区在线免费| 久久久久综合| 久久影视三级福利片| 免费观看成人鲁鲁鲁鲁鲁视频| 牛牛影视久久网| 国产精品进线69影院| 国产自产女人91一区在线观看| 极品少妇一区二区三区| 亚洲精品乱码视频| 午夜精品亚洲| 欧美激情第一页xxx| 亚洲午夜伦理| 蜜臀99久久精品久久久久久软件| 欧美日韩视频第一区| 国内外成人在线视频| 亚洲美女黄色片| 亚洲欧美制服中文字幕| 欧美91大片| 亚洲一区二区在线视频 | 国产欧美精品一区aⅴ影院| 国产亚洲精品久久久久婷婷瑜伽| 亚洲国产清纯| 久久精品女人天堂| 日韩视频精品| 久久久久国产一区二区| 国产精品毛片在线| 一本色道久久88综合日韩精品| 久久精品夜色噜噜亚洲aⅴ| 亚洲剧情一区二区| 久久久免费av| 国产亚洲欧美日韩美女| 亚洲亚洲精品三区日韩精品在线视频| 久久久久久久久久久久久久一区 | 国产乱肥老妇国产一区二| 国产亚洲一区二区在线观看| 亚洲欧洲精品一区二区三区| 久久国产精品久久久久久| 亚洲美女色禁图| 模特精品在线| 激情另类综合| 久久精品夜色噜噜亚洲aⅴ| av成人毛片| 欧美美女bbbb| 日韩视频在线观看| 亚洲国内自拍| 免费亚洲一区二区| 在线观看欧美日韩| 久久亚洲精选| 久久成人av少妇免费| 国产欧美精品日韩精品| 性伦欧美刺激片在线观看| 亚洲日韩中文字幕在线播放| 麻豆精品一区二区av白丝在线| 狠狠色丁香久久婷婷综合丁香| 欧美亚洲在线观看| 亚洲欧美国产毛片在线| 国产精品捆绑调教| 午夜一区不卡| 欧美亚洲视频一区二区| 国产主播一区二区三区| 久久天堂av综合合色| 久久成人精品视频| 国内自拍一区| 欧美成人精品h版在线观看| 久久蜜桃资源一区二区老牛| 在线观看欧美成人| 免费不卡亚洲欧美| 欧美高清视频一二三区| 99热精品在线观看| 9l视频自拍蝌蚪9l视频成人| 欧美日韩中文在线观看| 亚洲欧美视频一区二区三区| 亚洲免费在线| 在线日本高清免费不卡| 亚洲精品一区二区三区婷婷月 | 欧美在线观看网址综合| 激情久久久久| 欧美激情久久久久| 欧美精品一区二区三区高清aⅴ| 日韩亚洲欧美高清| 亚洲无亚洲人成网站77777| 国产手机视频精品| 欧美国产大片| 国产精品免费一区二区三区在线观看 | 国产色视频一区| 久久久福利视频| 久久深夜福利免费观看| 99精品久久免费看蜜臀剧情介绍| 在线亚洲自拍| 在线观看精品| 亚洲视频在线观看网站| 国产亚洲在线观看| 亚洲片在线资源| 国产婷婷色综合av蜜臀av| 亚洲国产岛国毛片在线| 国产精品一二一区| 91久久黄色| 一色屋精品亚洲香蕉网站| 99国产精品国产精品久久| 在线电影欧美日韩一区二区私密| 一区二区三区导航| 亚洲精品乱码久久久久久蜜桃91| 欧美一区二区三区在线| 亚洲午夜精品一区二区| 美女网站在线免费欧美精品| 久久成人资源| 国产精品v一区二区三区 | 牛牛影视久久网| 国产精品永久入口久久久| 亚洲乱码一区二区| 亚洲欧洲在线一区| 久久久免费精品视频| 久久www成人_看片免费不卡| 欧美视频精品一区| 亚洲欧洲精品一区二区三区波多野1战4| 国产日韩欧美一区| 亚洲一区精彩视频| 亚洲美女福利视频网站| 麻豆av一区二区三区| 久久久久久网站| 国产欧美日韩精品a在线观看| 一本色道久久综合亚洲二区三区| 亚洲第一页自拍| 久久性天堂网| 女女同性女同一区二区三区91| 国产无遮挡一区二区三区毛片日本| 在线中文字幕不卡| 亚洲午夜av在线| 欧美日韩一区二区三区四区在线观看| 欧美福利一区二区| 亚洲大胆在线| 麻豆国产精品777777在线| 免费人成网站在线观看欧美高清| 国产视频自拍一区| 小处雏高清一区二区三区| 亚洲午夜性刺激影院| 欧美婷婷六月丁香综合色| 中文在线资源观看网站视频免费不卡 | 国产精品www994| 亚洲一区二区免费视频| 欧美一级午夜免费电影| 国产香蕉97碰碰久久人人| 欧美伊人久久| 欧美激情网友自拍| 中日韩在线视频| 国产精品视频网| 欧美精品激情blacked18| 一区二区三区视频在线观看| 欧美精品啪啪| 亚洲国语精品自产拍在线观看| 99re6这里只有精品视频在线观看| 欧美精品在线网站| 一区二区三区 在线观看视频| 亚洲欧美日韩成人高清在线一区| 国产日产欧美精品| 久久久午夜视频| 91久久夜色精品国产九色| 亚洲欧美日本伦理| 狠狠色综合色区| 欧美人妖另类| 亚洲欧美日韩一区二区三区在线观看| 久久久久综合| 一区二区三区蜜桃网| 国产欧美一区二区三区久久人妖| 久久午夜国产精品| 这里只有精品电影| 免播放器亚洲一区| 亚洲一区二区三区高清| 亚洲精品自在久久| 久久精品亚洲精品| 99视频在线精品国自产拍免费观看| 国产精品久久久久久久久久免费看 | 欧美a级一区| 亚洲欧美一区二区原创| 亚洲国产欧美精品| 国产日韩一区二区三区在线| 欧美国产一区二区| 欧美在线观看www| 一区二区日韩| 欧美激情一区二区久久久| 欧美一区二区三区在| 亚洲国产美女| 国产视频丨精品|在线观看| 欧美电影免费| 久久久在线视频| 欧美一区视频在线| 亚洲神马久久| 日韩一区二区高清| 欧美激情一区二区三区四区| 久久久噜噜噜久久久| 新狼窝色av性久久久久久| 中国日韩欧美久久久久久久久| 亚洲人成人99网站|