首页IT科技怎么输出map(如何输出_tmain中的argv[] 悲情土仔一生 C++博客)

怎么输出map(如何输出_tmain中的argv[] 悲情土仔一生 C++博客)

时间2025-08-04 18:49:15分类IT科技浏览5019
导读:如何输出_tmain中的argv[] 作者:Tuuzed(土仔 版权声明:可以任意转载     ...

如何输出_tmain中的argv[]

作者:Tuuzed(土仔)

版权声明:可以任意转载             ,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明             。

http://www.cppblog.com/tuuzed/archive/2008/02/23/43153.html

使用过VS2005中VC++的大侠们应该对_tmain不陌生                  。是的                  ,_tmain是Microsoft自己弄出来的东西       ,关于它的问题网上有一堆(GOOGLE Search)       。今天想用VS2005中的VC++做一个WIN32控制台(console)下的应用程序          ,向导程序默认给出的是以下内容:

1#include"stdafx.h"23int_tmain(intargc,_TCHAR*

argv[])

4

{

56return0

;

78}
9

想当然                  ,很好          ,很容易          。试试列出命令的参数:

1#include"stdafx.h"23usingnamespacestd;//必须在stdafx.h增加#include<iostream>45int_tmain(intargc,_TCHAR*

argv[])

6

{

7cout<<argc<<

endl;

8cout<<argv[0]<<

endl;

9return0

;

10}
11

运行结果竟然是这样的:

D:\MyData\CSharp\Projects\test\Debug>test

1

003A5210

003A5210            ”是什么值?一开始就弄不懂了                  。

如果把_tmain函数变为:

1intmain(intargc,char*

argv[])

2

{

3cout<<argc<<

endl;

4cout<<argv[0]<<

endl;

5return0

;

6}
7

运行结果正常:

D:\MyData\CSharp\Projects\test\Debug>test

1

d:\MyData\CSharp\Projects\test\Debug\test.exe

头大了          。最后分别对两个函数运用断点中的反汇编看看       ,发现原来**argv竟然是wchar_t**                  ,再翻弄了一下_TCHAR的声明:

typedef wchar_t_TCHAR;

一切明白了       。要输出这个

_TCHAR只能用cout的另一个版本:wcout                  。

为什么呢?原因很简单             ,因为他们都带了一个“w                    ”在前面啊!

能正确输出_TCHAR* argv[]的版本:

1#include"stdafx.h"23usingnamespace

std;

45int_tmain(intargc,_TCHAR*

argv[])

6

{

7wcout<<argc<<

endl;

8wcout<<argv[0]<<

endl;

9return0

;

10}
11

给出一个网上对

_tmain的一个有用的定义:

对于ANSI版本    ,"_tWinMain"就是"WinMain";对于UINCODE版本                   ,"_tWinMain"就是"wWinMain"             。

(比如这样的定义:)

1

#ifdef_UNICODE

2#define_tmainwmain3#define_tWinMainwWinMain4#else5#define_tmainmain6#define_tWinMainWinMain7#endif

所以                ,_tmain()不过是unicode版本的的main()

声明:本站所有文章,如无特殊说明或标注                ,均为本站原创发布    。任何个人或组织                   ,在未征得本站同意时    ,禁止复制            、盗用                    、采集      、发布本站内容到任何网站         、书籍等各类媒体平台                   。如若本站内容侵犯了原著者的合法权益             ,可联系我们进行处理                。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
魂斗罗python源代码(学习 Python 之 Pygame 开发魂斗罗(十一)) windows ghost怎么安装(ghost win10安装教程)