int _tmain(int argc,TCHAR * argv [])无法识别的命令行参数,其中定义了unicode

时间:2012-05-18 13:47:54

标签: c windows winapi unicode mingw

#define UNICODE
#define WINVER 0x502
#include <stdio.h>
#include <windows.h>
#include <tchar.h>

int _tmain( int argc, TCHAR* argv[] ) {

    if ( argc > 1 && lstrcmpi( argv[1], L"install" ) == 0 ) {
        printf ( "In install\n");
    }
    else if ( argc > 1 && lstrcmpi( argv[1], L"uninstall" ) == 0 ) {
        printf ( "In Uninstall\n" );
    }
    else if ( argc > 1 && lstrcmpi( argv[1], L"start" ) == 0 ) {
        printf ( "In Start\n" );
    }
    else {
        printf ( "In else part\n" );
    }

    return 0;
}

上面的代码没有检测到命令行参数,并且始终打印“else”部分。 如何实现我的意图?

使用“MINGW”..在Windows XP中..

感谢..

1 个答案:

答案 0 :(得分:3)

我认为MINGW编译器没有定义wmain,而是定义了UNICODE。在您的检查代码中使用而不是CommandLineToArgvW。

Ps:对不起我的英语: - )