MinGW没有wmain入口函数,为了获取宽字符的参数,可以用系统API函数GetCommandLineW。

main.cpp

#include <iostream>
#include <windows.h>
using namespace std; int main(int argc, const char *argv[], const char *evn[]) {
// print w_char
ios::sync_with_stdio(false);
locale::global(locale(""));
setlocale(LC_CTYPE, "");
wcout.imbue(locale(""));
wcout << L"This is a test! 这是一个测试!" << endl << endl; //print args
wcout << "argc: " << argc << endl;
wchar_t **argv1 = CommandLineToArgvW(GetCommandLineW(), &argc); // MinGW w_char args
for (int i = ; i < argc; ++i) {
wcout << "argv[" << i << "]: " << argv1[i] << endl;
}
LocalFree(argv1);
wcout << endl; // print evn
for (int i = ; evn[i]!=NULL; ++i) {
wcout << "evn[" << i << "]: " << evn[i] << endl;
} return EXIT_SUCCESS;
}

编译输出:

D:\>g++ main.cpp -o test.exe

D:\>test.exe File1 -o File2 汉字 "a b c"
This is a test! 这是一个测试! argc: 6
argv[0]: test.exe
argv[1]: File1
argv[2]: -o
argv[3]: File2
argv[4]: 汉字
argv[5]: a b c evn[0]: ALLUSERSPROFILE=C:\ProgramData
evn[1]: APPDATA=C:\Users\YK\AppData\Roaming
evn[2]: CommonProgramFiles=C:\Program Files (x86)\Common Files
evn[3]: CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
evn[4]: CommonProgramW6432=C:\Program Files\Common Files
evn[5]: COMPUTERNAME=YK-PC
evn[6]: ComSpec=C:\Windows\system32\cmd.exe
evn[7]: FP_NO_HOST_CHECK=NO
evn[8]: HOMEDRIVE=C:
evn[9]: HOMEPATH=\Users\YK
evn[10]: LOCALAPPDATA=C:\Users\YK\AppData\Local
evn[11]: LOGONSERVER=\\YK-PC
evn[12]: NUMBER_OF_PROCESSORS=4
evn[13]: OS=Windows_NT
evn[14]: Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows
\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bi
n\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\MinGW\bin
evn[15]: PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
evn[16]: PROCESSOR_ARCHITECTURE=x86
evn[17]: PROCESSOR_ARCHITEW6432=AMD64
evn[18]: PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
evn[19]: PROCESSOR_LEVEL=6
evn[20]: PROCESSOR_REVISION=2a07
evn[21]: ProgramData=C:\ProgramData
evn[22]: ProgramFiles=C:\Program Files (x86)
evn[23]: ProgramFiles(x86)=C:\Program Files (x86)
evn[24]: ProgramW6432=C:\Program Files
evn[25]: PROMPT=$P$G
evn[26]: PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
evn[27]: PUBLIC=C:\Users\Public
evn[28]: SystemDrive=C:
evn[29]: SystemRoot=C:\Windows
evn[30]: TEMP=C:\Users\YK\AppData\Local\Temp
evn[31]: TMP=C:\Users\YK\AppData\Local\Temp
evn[32]: USERDOMAIN=YK-PC
evn[33]: USERNAME=YK
evn[34]: USERPROFILE=C:\Users\YK
evn[35]: windir=C:\Windows
evn[36]: windows_tracing_flags=3
evn[37]: windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log D:\>

MinGW main()的更多相关文章

  1. [转]dev C++编写windows程序遇到问题

    1.工具-编译选项-编译器-在连接器命令行加入以下命令: -mwindows 2.出现错误:undefined reference to `PlaySoundA@12' 解决办法:工具-编译选项-编译 ...

  2. c++只能编译无法运行或许缺少命令

    -mwindows -lcomctl32 -lwinmm -lws2_32 -lodbc32 -lmysql   -lwinspool1.工具-编译选项-编译器-在连接器命令行加入以下命令:-mwin ...

  3. 关于一些规范:main()函数的返回值 mingw和mingw-w64编译器的区别

    深度剖析c语言main函数---main函数的返回值 - 编程随笔与杂谈 - CSDN博客 https://blog.csdn.net/z_ryan/article/details/80979008 ...

  4. Win7 64位 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6

    书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说 ...

  5. Win7 64位 MinGW环境测试SDL2.0.3

    下载MinGW版的文件 http://www.libsdl.org/release/SDL2-devel-2.0.3-mingw.tar.gz 解压放到mysys下面 运行Makefile mysys ...

  6. codeblocks+Mingw 下配置开源c++单元测试工具 google test

    google test 是google的c++开源单元测试工具,chrome的开发团队就是使用它. Code::Blocks 12.11(MinGW 4.7.1) (Windows版)Google T ...

  7. java + jni + mingw实例开发(基于命令行窗口模式)

    java+ jni + mingw 参考网址: http://wenku.baidu.com/link?url=9aQ88d2ieO7IgKLlNhJi5d3mb3xwzbezLPzSIX3ixz4_ ...

  8. Eclipse+Mingw+Boost 环境搭建

    一.安装CDT插件 Eclipse是用Java的swt开发的,所以需要java虚拟机才能运行,jdk的配置方法网上一大堆,这里就不细说了.安装CDT的方法简单提一下,到Help->Eclipse ...

  9. windows下安装mingw

    windows环境下使用gcc MinGw是Minimal GNU on Windows的缩写,允许在GNU/linux和windows平台生成本地的windows程序而不需要第三方运行时库.本文主要 ...

随机推荐

  1. 如何转换指定 波长 到 RGB 颜色?

    //指定波长转换成RGBA颜色 std::vector<int> lambdaToColor(double lambda,double gamma = 0.8,double intensi ...

  2. Qt Creator 如何支持并行?

    PRO 文件中加入以下语句即可 #OpenMP QMAKE_CXXFLAGS += -openmp QMAKE_LFLAGS += -openmp

  3. 我的Android进阶之旅------>(全解析)屏幕尺寸,分辨率,像素,PPI之间到底什么关系?

    作者:马忠信,作者授权早读课发表,转载请联系作者. 原文链接:http://www.jianshu.com/p/c3387bcc4f6e#  互联网早读课:http://zaodula.com/arc ...

  4. Android系统移植与调试之------->build.prop文件详细赏析

    小知识:什么是build.prop?   /system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件.这个文件是如 ...

  5. Pycharm中SQL语句提示SQL Dialect is Not Configured

    解决办法: 在File---->Setting--->Languages & Frameworks--->SQL Dialects中,选择对应的数据库,如MySQL,之后点击 ...

  6. 命令行查看mysql的安装目录

    方法: 进入mysql命令行输入:show variables like "%char%"; 结果如下: 红色框框就是安装目录

  7. javascript高级语法

    一.JavaScript对象 1.js对象简介 1.1 在JavaScript中除了null和undefined以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,在JavaScrip ...

  8. 爬虫基础库之requests模块

    一.requests模块简介 使用requests可以模拟浏览器请求,比起之前用到的urllib,requests模块的api更加快捷,其实ruquests的本质就是封装urllib3这个模块. re ...

  9. Python基础(7)_闭包函数、装饰器

    一.闭包函数 闭包函数:1.函数内部定义函数,成为内部函数, 2.改内部函数包含对外部作用域,而不是对全局作用域名字的引用那么该内部函数成为闭包函数 #最简单的无参闭包函数 def func1() n ...

  10. linux mint —— 图片一张

    概述 Linux Mint是一種基於Ubuntu開發出的Linux操作系统.由Linux Mint Team团队于2006年开始发行.Linux Mint 的目标是为家庭用户和企业客户提供一个免费.高 ...