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

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

时间2025-05-04 17:37:39分类IT科技浏览3538
导读:如何输出_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
语义分割IOU的计算(搭建自己的语义分割平台deeplabV3+)