2012-02-14 347 views
1

我想這樣的事情,如何將DWORD轉換爲char *?

PROCESS_INFORMATION processInfo = ..... 
strcat(args, processInfo.dwProcessId); 

其中argschar *,我需要作爲參數傳遞到其他可執行文件。

+2

DWORD是一個整數類型。將它轉換爲char *'沒有任何意義。 – 2012-02-14 06:01:17

+0

但我需要這個'DWORD'作爲參數傳遞給使用CreateProcess()調用的另一個exe文件。有什麼建議麼? – psp 2012-02-14 06:04:15

+0

[C++ long to string](http://stackoverflow.com/questions/947621/c-long-to-string)或[如何將int轉換爲C中的字符串](http:// stackoverflow。 COM /問題/ 8257714 /如何對轉換-AN-INT-到字符串中-C)。 – user7116 2012-02-14 06:04:22

回答

7

您可以用sprintf

char procID[10]; 
sprintf(procID, "%d", processInfo.dwProcessId); 

這將processInfo.dwProcessId轉換成然後可以通過你所使用的字符。

+0

在所有可能的選項中,我認爲這是最優化的選項。 – psp 2012-02-14 06:22:17

+0

由於DWORD是一個無符號整數,因此應該使用'%u'。 – user7116 2012-02-14 15:11:13

+8

實際上,'DWORD'是一個'unsigned long',你應該使用'%lu'作爲格式說明符。 – tomlogic 2012-03-22 19:56:41

1

雖然沒有直接 「轉換爲char*」,下面應該做的伎倆:

std::ostringstream stream; 
stream << processInfo.dwProcessId; 
std::string args = stream.str(); 

// Then, if you need a 'const char*' to pass to another Win32 
// API call, you can access the data using: 
const char * foo = args.c_str(); 
1

要轉換DWORD爲char *您可以使用_ultoa/_ultoa_s

看到這裏可能會幫助你。 link1