main和_tmain的问题
来源:互联网 发布:淘宝主图设计思路 编辑:程序博客网 时间:2024/06/04 18:28
今天调了一个vs下面用c++的项目。
说一下_tmain与main的区别,这次是用命令行传参数,然后由函数进行计算使用,刚开始是这样的int _tmain(int argc, char * argv[]),那么传的参数是字符串形式,然后我要用到的是int和double类型的,但是这种写法打印出来参数却只打印出来一个字符,就是我的AlgDllWin32.exe,只打印出来了A,而1000只打印出来了1,这显然是错误的,我就开始怀疑自己的参数是不时形式传错了,比如是不是char *argv[]应该改为string argv【】,然而这样找了一上午原因都没测出来,后来无意间把_tmain改成main,竟然好了,后来查一下这个区别,
main()是标准C++的函数入口。标准C++的程序入口点函数,默认字符编码格式ANSI
函数签名为:
int main();
int main(int argc, char* argv[]);
_tmain()是微软操作系统(windows)提供的对unicode字符集和ANSI字符集进行自动转换用的程序入口点函数。
函数签名为:
int _tmain(int argc, TCHAR *argv[])
当你程序当前的字符集为unicode时,int _tmain(int argc, TCHAR *argv[])会被翻译成
int wmain(int argc, wchar_t *argv[])
当你程序当前的字符集为ANSI时,int _tmain(int argc, TCHAR *argv[])会被翻译成
int main(int argc, char *argv[])
1) main是c/c++的标准入口函数名
2) winmain是windows api窗体程序的入口函数(int winapi winmain()中winapi是__stdcall的宏 在windows.h中定义)
3) _tmain _twinmain是unicode版本函数别名 为了编译时能自动转换字符串编码
**********************************************************************************
**********************************************************************************
1.main是C程序的函数,_tmain是main为了支持unicode所使用的main的別名
2._tmain的定义在<tchar.h>可以找到,如#define _tmain main,所以要加#include <tchar.h>才能用。 _tmain()是个宏,如果是UNICODE则他是wmain()否则他是main()
3.因此_tmain compile后仍为main,所以都可以执行
**********************************************************************************
**********************************************************************************
1) main()是WINDOWS的控制台程序(32BIT)或DOS程序(16BIT),
2) WinMain()是WINDOWS的GUI程序,
wmain()是UNICODE版本的main(),
3)_tmain()是个宏,如果是UNICODE则他是wmain()否则他是main()
外,wmain也是main的另一個别名,是为了支持二个字节的语言环境
阅读全文
0 0
- main和_tmain的问题
- _tmain()和main()的区别
- _tmain和main的区别
- _tmain()和main()的区别
- _tmain()和main()的区别
- _tmain()和main()的区别
- _tmain()和main()的区别
- _tmain和main的区别
- _tmain()和main()的区别
- int main 和 int _tmain 的区别
- vs中 main和_tmain的区别
- _tmain和main之间的关系
- vs中 main和_tmain的区别
- _tmain()和main()区别
- _tmain和main
- _tmain()和main()区别
- _tmain()和main()区别
- _tmain()和main()区别
- Unity中的Shader的形态
- SpringMVC入门
- 关于iOS11 IQKeyBoardManager 不显示完成按钮以及最新版无法获取doneAction的解决方案
- Java 程序员的堕落
- 当前上下文不存在ScriptManager
- main和_tmain的问题
- text-size-adjust(只用于移动端)
- Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication
- 基于哈夫曼编码的文件压缩
- wxPython的一个简单例子
- 记录一次SVN服务器搬迁(windows-Linux)
- JavaScript 计算时间差
- 7-2 两个有序链表序列的交集
- 不求甚解-luence