MinGW main()
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()的更多相关文章
- [转]dev C++编写windows程序遇到问题
1.工具-编译选项-编译器-在连接器命令行加入以下命令: -mwindows 2.出现错误:undefined reference to `PlaySoundA@12' 解决办法:工具-编译选项-编译 ...
- c++只能编译无法运行或许缺少命令
-mwindows -lcomctl32 -lwinmm -lws2_32 -lodbc32 -lmysql -lwinspool1.工具-编译选项-编译器-在连接器命令行加入以下命令:-mwin ...
- 关于一些规范:main()函数的返回值 mingw和mingw-w64编译器的区别
深度剖析c语言main函数---main函数的返回值 - 编程随笔与杂谈 - CSDN博客 https://blog.csdn.net/z_ryan/article/details/80979008 ...
- Win7 64位 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6
书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说 ...
- Win7 64位 MinGW环境测试SDL2.0.3
下载MinGW版的文件 http://www.libsdl.org/release/SDL2-devel-2.0.3-mingw.tar.gz 解压放到mysys下面 运行Makefile mysys ...
- codeblocks+Mingw 下配置开源c++单元测试工具 google test
google test 是google的c++开源单元测试工具,chrome的开发团队就是使用它. Code::Blocks 12.11(MinGW 4.7.1) (Windows版)Google T ...
- java + jni + mingw实例开发(基于命令行窗口模式)
java+ jni + mingw 参考网址: http://wenku.baidu.com/link?url=9aQ88d2ieO7IgKLlNhJi5d3mb3xwzbezLPzSIX3ixz4_ ...
- Eclipse+Mingw+Boost 环境搭建
一.安装CDT插件 Eclipse是用Java的swt开发的,所以需要java虚拟机才能运行,jdk的配置方法网上一大堆,这里就不细说了.安装CDT的方法简单提一下,到Help->Eclipse ...
- windows下安装mingw
windows环境下使用gcc MinGw是Minimal GNU on Windows的缩写,允许在GNU/linux和windows平台生成本地的windows程序而不需要第三方运行时库.本文主要 ...
随机推荐
- unity坑faq
遇到的坑记录下来,大都都是听说,没有实测 1. Graphics.copyTexture,在某些机型上不支持从不同类型拷贝 2. msaa 小米mix2不支持,晓龙845 3. android4.2下 ...
- springboot集成h2
h2数据库是常用的开源数据库,与HSQLDB类似,十分适合作为嵌入式数据库使用,其他的数据库大部分都需要安装独立的客户端和服务器端 h2的优势: (1)h2采用纯java编写,因此不受平台的限制 (2 ...
- Win7环境下Apache+mod_wsgi本地部署Django
django基础已经掌握的同学可以尝试将项目发布已寻找些许成就感,以鼓励自己接下来进行django的进阶学习 以前你总是使用python manage.py runserver进行服务启动,但是却不知 ...
- MySQL中myisam和innodb的主键索引有什么区别?
MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索 ...
- 我的Android进阶之旅------>Android百度地图定位SDK功能学习
因为项目需求,需要使用百度地图的定位功能,因此去百度地图开发平台下载了百度地图的Android定位SDK最新版本的开发包和示例代码学习. Android 定位SDK地址:http://develope ...
- Oracle ErrorStack 使用和阅读具体解释
一.概述 在Oracle数据库执行过程中,我们常常会遇到这样或那样的错误.可是错误的提示并不详细,加大了我们在诊断问题时的难度. ErrorStack是Oracle提供的一种对于错误堆栈进行跟踪的方法 ...
- 安装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: ...
- Debussy的安装与使用
1.概述 Debussy是NOVAS Software, Inc ( 思源科技 )发展的HDL Debug & Analysis tool,这套软体主要不是用来跑模拟或看波形,它最强大的功能是 ...
- 每天一个Linux命令(57)rpm命令
rpm是一个功能十分强大的软件包管理系统. (1)用法: 用法: rpm [参数] [包名] (2)功能: 功能: 使得在Linux下安装.升级和删除软 ...
- $MySQL常用操作命令备忘
1.登录数据库:mysql -uroot -p12345 (12345为密码)2.创建数据库:create database senguocc; (senguocc为数据库名)3.查看有哪些数据库: ...