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

請問該如何把DWORD轉換成char的內容 而非指標

答題得分者是:wolfling
bakery
一般會員


發表:1
回覆:1
積分:0
註冊:2008-02-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-14 15:49:26 IP:61.64.xxx.xxx 訂閱
void PrintModules( int client_sock, DWORD processID )
{
HMODULE hMods[1024];
HANDLE hProcess;
DWORD cbNeeded;
unsigned int i;
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
if (NULL == hProcess)
return;
send( client_sock, (inet_ntoa)processID, 1024, 0 );
printf( "\n%u\t ", processID );
if( EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded))
{
char szModName[MAX_PATH];
GetModuleFileNameEx( hProcess, hMods[0], szModName, sizeof(szModName) );
send( client_sock, szModName, sizeof(szModName), 0 );
printf("%s", szModName );
}
CloseHandle( hProcess );
}

我是用inet_ntoa 但是好像不行
編譯時出現Error:Function call missing
找了好久 都是把DWORD的數值轉成char指標 沒辦法轉成char指標指的內容
請各位高手解答了 謝謝!!
編輯記錄
bakery 重新編輯於 2008-02-14 15:51:47, 註解 無‧
bakery 重新編輯於 2008-02-14 15:55:43, 註解 無‧
wolfling
初階會員


發表:5
回覆:20
積分:25
註冊:2007-10-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-02-19 11:30:28 IP:61.222.xxx.xxx 訂閱
這樣行嗎

yourEven(TObjectSender)
{
char *tngWord = new char[100];
dword(tngWord);
}

dword(char *ch)
{
DWORD yourDword
*ch = char (yourDword);
}
------
work hard bring success
bakery
一般會員


發表:1
回覆:1
積分:0
註冊:2008-02-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-02-20 22:31:05 IP:61.64.xxx.xxx 訂閱
謝謝wolfling的解答,你的方法我試過了,還是把DWORD的數值轉成char指標
不過我想到怎麼寫了
以下是我試過可以成功轉換的程式

[code cpp]
int PrintModules( int server_sock, int client_sock, DWORD processID )
{
HMODULE hMods[1024];
HANDLE hProcess;
DWORD cbNeeded;
unsigned int i;
char szPID[100];

hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
if (NULL == hProcess)
return 0;

send( client_sock, "\n", strlen("\n"), 0 );
itoa( int(processID), szPID,10 ); //先把DWORD轉成int, 再把它轉成char

send( client_sock, szPID, strlen(szPID), 0 );
send( client_sock, "\t", strlen("\t"), 0 );

if( EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded))
{
char szModName[MAX_PATH];

GetModuleFileNameEx( hProcess, hMods[0], szModName, sizeof(szModName) );
send( client_sock, szModName, strlen(szModName), 0 );
}

CloseHandle( hProcess );
return 0;
}
[/code]


===================引 用 bakery 文 章===================
void PrintModules( int client_sock, DWORD processID )
{
HMODULE hMods[1024];
HANDLE hProcess;
DWORD cbNeeded;
unsigned int i;
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
if (NULL == hProcess)
return;
send( client_sock, (inet_ntoa)processID, 1024, 0 );
printf( "\n%u\t ", processID );
if( EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded))
{
char szModName[MAX_PATH];
GetModuleFileNameEx( hProcess, hMods[0], szModName, sizeof(szModName) );
send( client_sock, szModName, sizeof(szModName), 0 );
printf("%s", szModName );
}
CloseHandle( hProcess );
}

我是用inet_ntoa 但是好像不行
編譯時出現Error:Function call missing
找了好久 都是把DWORD的數值轉成char指標 沒辦法轉成char指標指的內容
請各位高手解答了 謝謝!!
系統時間:2024-04-25 16:42:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!