全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2018
推到 Plurk!
推到 Facebook!

關於RegQueryValueEx回傳的lpData變數型態轉換問題

缺席
smokyonion
一般會員


發表:2
回覆:1
積分:0
註冊:2009-07-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-07-27 15:14:44 IP:123.204.xxx.xxx 訂閱
想請問各位先進,小弟在RegQueryValueEx變數型態的處理上遇到一個瓶頸,

一直找不到好的解決辦法,希望版上先進能給小弟一個方向,指點一二,感激不盡。

我使用的平台是 Visual Studio 2005 with C
相關程式碼與解說如下,
[code cpp]
/*
LONG WINAPI RegQueryValueEx(
  __in        HKEY hKey,
  __in_opt    LPCTSTR lpValueName,
  __reserved   LPDWORD lpReserved,
  __out_opt    LPDWORD lpType,
  __out_opt    LPBYTE lpData,
  __inout_opt  LPDWORD lpcbData
);
*/

  LONG lResult;
  HKEY hRootKey = HKEY_LOCAL_MACHINE;
  LPCTSTR lpSubKey = TEXT("SYSTEM\\CurrentControlSet\\Services\\Ser2pl\\Enum");
  HKEY hKey;

  lResult = RegOpenKeyEx (hRootKey, lpSubKey, 0, KEY_READ, &hKey);

// 我在上面先用RegOpenKeyEx得到的hKey "SYSTEM\\CurrentControlSet\\Services\\Ser2pl\\Enum"
// 經過驗證後該路徑存在我便傳給下方得RegQueryValueEx,之後存入下方lpData的值是
// "USB\VID_067B&PID_2303\5&2c5c6891&0&1"

// 我想把lpData這個結果當成另外一個路徑附加在"\CurrentControlSet\Enum\"後面,並加上"Device Parameters"
// 成為 "\CurrentControlSet\Enum\USB\VID_067B&PID_2303\5&2c5c6891&0&1\Device Parameters"這個路徑
// 再傳給RegQueryValueEx來抓取另外一個值,我該如何才能做到轉換的動作,懇請先進不吝指點賜教,感激不盡

   LONG regResult;
   LPCTSTR lpSubValue = TEXT("0"); //
   LPBYTE lpData = new BYTE[128];
   DWORD dType = REG_SZ;
   DWORD cbData = 128;
   regResult = RegQueryValueEx(hKey, lpSubValue, NULL, &dType, lpData, &cbData);
//--------------------------------------------
[/code]
編輯記錄
smokyonion 重新編輯於 2009-07-27 15:21:33, 註解 無‧
系統時間:2017-10-18 22:32:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!