0

どうしたの?出力に 0x0000etc が表示されるのはなぜですか?

int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );

    if( !hSnapshot )
        return -1;

    PROCESSENTRY32W pe32w;
    memset( &pe32w, 0, sizeof( pe32w ) );
    pe32w.dwSize = sizeof( PROCESSENTRY32W );
    Process32First( hSnapshot, &pe32w );
    do
    {
        std::cout << pe32w.szExeFile << std::endl;
    } while( Process32Next( hSnapshot, &pe32w ) );

    CloseHandle( hSnapshot );

    return 0;
}
4

1 に答える 1

2

これは、PROCESSENTRY32W構造がwchar_tの型を使用してszExeFileおり、std::coutワイド文字の処理方法を理解していないことが原因である可能性があります。この場合、代わりにポインタ値を出力するだけです。

std::wcoutを使用して、ワイド文字の値を出力できる場合があります。

于 2012-06-26T22:20:01.527 に答える