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. unity坑faq

    遇到的坑记录下来,大都都是听说,没有实测 1. Graphics.copyTexture,在某些机型上不支持从不同类型拷贝 2. msaa 小米mix2不支持,晓龙845 3. android4.2下 ...

  2. springboot集成h2

    h2数据库是常用的开源数据库,与HSQLDB类似,十分适合作为嵌入式数据库使用,其他的数据库大部分都需要安装独立的客户端和服务器端 h2的优势: (1)h2采用纯java编写,因此不受平台的限制 (2 ...

  3. Win7环境下Apache+mod_wsgi本地部署Django

    django基础已经掌握的同学可以尝试将项目发布已寻找些许成就感,以鼓励自己接下来进行django的进阶学习 以前你总是使用python manage.py runserver进行服务启动,但是却不知 ...

  4. MySQL中myisam和innodb的主键索引有什么区别?

    MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索 ...

  5. 我的Android进阶之旅------>Android百度地图定位SDK功能学习

    因为项目需求,需要使用百度地图的定位功能,因此去百度地图开发平台下载了百度地图的Android定位SDK最新版本的开发包和示例代码学习. Android 定位SDK地址:http://develope ...

  6. Oracle ErrorStack 使用和阅读具体解释

    一.概述 在Oracle数据库执行过程中,我们常常会遇到这样或那样的错误.可是错误的提示并不详细,加大了我们在诊断问题时的难度. ErrorStack是Oracle提供的一种对于错误堆栈进行跟踪的方法 ...

  7. 安装MYSQL时出现libaio.so.1 is needed by MySQL-server-5.5,49.1等等

    安装MYSQL是出现: warning: MySQL-server--.linux2..i386.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: ...

  8. Debussy的安装与使用

    1.概述 Debussy是NOVAS Software, Inc ( 思源科技 )发展的HDL Debug & Analysis tool,这套软体主要不是用来跑模拟或看波形,它最强大的功能是 ...

  9. 每天一个Linux命令(57)rpm命令

        rpm是一个功能十分强大的软件包管理系统.     (1)用法:     用法:  rpm  [参数]  [包名]     (2)功能:     功能:  使得在Linux下安装.升级和删除软 ...

  10. $MySQL常用操作命令备忘

    1.登录数据库:mysql -uroot -p12345  (12345为密码)2.创建数据库:create database senguocc; (senguocc为数据库名)3.查看有哪些数据库: ...