基本的Win32 C编程

时间:2018-09-24 17:15:21

标签: visual-studio-2010 visual-c++

我正在尝试显示命令行参数。 这是我当前的代码。

#include "windows.h"
int _stdcall WinMain ( HINSTANCE  hInstance,  
                       HINSTANCE  hPrevInstance,       
                       LPSTR  lpszCmdline,  
                       int  nCmdShow  )
{ 
    MessageBox (  0, lpszCmdLine,L"Title",0); 

    return  ( 0 ) ; 
} 

我在应用程序中得到了不同的字符。

为了在应用程序窗口中显示命令行参数,我应该做什么更改?

1 个答案:

答案 0 :(得分:1)

由于lpszCmdline是LPSTR(ASCII,不是UNICODE),因此第一个选项将使用MessageBox()的ASCII版本,但是由于UNICODE是标准的,所以我建议使用win32 entry point的UNICODE版本。请参见下面的代码:

#include "windows.h"
int _stdcall wWinMain ( HINSTANCE  hInstance,  
                       HINSTANCE  hPrevInstance,       
                       LPWSTR  lpszCmdline,  
                       int  nCmdShow  )
{ 
    MessageBox (  0, lpszCmdLine,L"Title",0); 

    return  ( 0 ) ; 
} 

此外,要将命令行转换为argv样式的字符串数组,请调用CommandLineToArgvW函数。