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程序而不需要第三方运行时库.本文主要 ...
随机推荐
- 关于Java中的toString()方法
package c07; class ewq{ public String toString() { return "ppppppppp"; } public static voi ...
- 顽石系列:Linux基础笔试
顽石系列:Linux基础笔试 系统操作 压缩文件 扩展名 压缩程序 *.Z compress *.zip zip *.gz gzip *.bz2 bzip2 *.xz xz *.tar tar 程序打 ...
- PAT 天梯赛 L1-028. 判断素数 【水】
题目链接 https://www.patest.cn/contests/gplt/L1-028 AC代码 #include <iostream> #include <cstdio&g ...
- PAT 天梯赛 L1-027. 出租 【模拟】
题目链接 https://www.patest.cn/contests/gplt/L1-027 题意 给出一串电话号码,找出其中不同数字的个数,并且按递减顺序排列,然后 有一个index 数组,指出每 ...
- iOS 设置 延迟执行 与 取消延迟执行 方法 以及对 run loop 初步认识
之前开发过程中经常会有需求会使用 NSObject中的"performSelector:withObject:afterDelay:"做方法延迟执行的处理, 但是 还没有什么地方需 ...
- SOA宣言和微服务特点
如果从概念层来看,我更喜欢把SOA归为企业架构的范畴,从企业架构出发把业务分解为不同业务域的服务,关注系统间的服务互联互通的规范,并不关心如何实现.也就是说在企业架构上使用SOA支撑业务,而在方案架构 ...
- display:inline-block 间隙
IE6/7是不支持display:inline-block属性,只是让其表现的跟inline-block一样,尤其对于inline水平的元素,其表现度可以用perfect一词来形容了. 对于IE8+以 ...
- cocos2dx打飞机项目笔记五:CCSpriteBatchNode 的使用
在上一节里,在头文件看到 定义了一个 CCSpriteBatchNode* batchNode;,在addEnemy方法里看到 batchNode->addChild(enemy); 新建的敌机 ...
- 《机器学习实战第7章:利用AdaBoost元算法提高分类性能》
import numpy as np import matplotlib.pyplot as plt def loadSimpData(): dataMat = np.matrix([[1., 2.1 ...
- linux文件系统实现原理简述【转】
本文转载自:https://blog.csdn.net/eleven_xiy/article/details/71249365 [摘要] [背景] [正文] [总结] 注意:请使用谷歌浏览器阅读( ...