0
#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 中..

谢谢..

4

1 回答 1

3

我认为 MINGW 编译器虽然定义了 UNICODE,但并没有定义 wmain。在您的检查代码中使用 CommandLineToArgvW。

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

于 2012-05-18T16:33:42.080 回答