C++
borise123456
这个作者很懒,什么都没留下…
展开
-
C++函数调用方式(_stdcall, _pascal, _cdecl...)总结
前一段时间学习动态库的调用方式,网上找到一篇好的文章,转帖如下:__stdcall: _stdcall 调用约定相当于16位动态库中经常使用的PASCAL调用约定。在32位的VC++5.0中PASCAL调用约定不再被支持(实际上它已被定义为__stdcall。除了__pascal外,__fortran和__syscall也不被支持),取而代之的是__stdcall调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关转载 2010-12-13 23:20:00 · 444 阅读 · 0 评论 -
Memset、Memcpy、Strcpy 的作用和区别(转)
<br />(1) Memset<br /> 原型: extern void *memset(void *buffer, int c, int count); <br /> 用法: #include <string.h> <br /> 功能: 把buffer所指内存区域的前count个字节设置成字符 c。 <br /> 说明: 返回指向buffer的指针。用来对一段内存空间全部设置为某个字符<br /> 例如:转载 2011-01-09 10:30:00 · 713 阅读 · 0 评论 -
usleep使用
<br />前几天分析MAC上的一段代码,偶然看到usleep这个函数,打开MSDN居然查不到这个函数,对应的在windows上,只有Sleep函数。百度了一下:<br />语法: <br />void usleep(int micro_seconds); <br />返回值: <br />无 <br />内容说明:<br />本函数可暂时使程序停止执行。<br />参数 <br />micro_seconds 为要暂停的微秒数(us)。 <br />注意:<br />这个函数不能工作在 Wind原创 2011-01-01 20:25:00 · 12293 阅读 · 0 评论 -
C语言的一些可能犯迷糊的基础
<br />1.首先C语言有多少个关键字?答案是32个,也许很少有人蛋疼的数一数。还有define是不是关键字?当然不是。<br />2.sizeof是什么东西?函数?但是发现 sizeof int 可以编译过去,答案不言而喻,sizeof是运算符,不是函数,当然也是关键字。<br />但是下面的代码:<br />int a[100]; sizeof(a[100])的值是多少?我的编译器执行后的是4,可能会和你心目中的数不一样。 那么sizeof(a)呢?答案是400!<br />sizeof(&a)呢转载 2011-01-01 20:42:00 · 636 阅读 · 0 评论 -
error LNK2001: unresolved external symbol _main解决办法
<br /> 解决外部符号错误:_main,_WinMain@16,__beginthreadex <br />在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: <br />libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main <br />LIBCD.lib(wincrt0.obj) :转载 2010-12-26 23:09:00 · 709 阅读 · 0 评论 -
Qt: Window, Linux动态链接库的分析对比
<br />1 分析Windows和Linux动态库 <br /> 摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将Visual C 编制的动态库移植到Linux上的方法和经验。 <br /> 1、引言 <br /> 动态转载 2010-12-26 22:19:00 · 981 阅读 · 0 评论 -
TinyXml 中文文档(基于2.5.2版本)
<br />原文来自:http://www.hansencode.cn/2007/06/tinyxml-chinese-doc.html<br /> <br />译注:本文是TinyXML 2.5.2版本Document的中文文档,经原作者Lee Thomason同意由hansen翻译,如有误译或者错漏,欢迎指正。<br />版权:版权归原作者所有,翻译文档版权归本人hansen所有,转载请注明出处。<br />原文:http://www.grinninglizard.com/tinyxmldocs/ind转载 2010-12-14 22:50:00 · 1118 阅读 · 1 评论 -
C,C++,VC++函数调用规则
以下内容来源与网络: 1、_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。 2、C调用约定(即用__cdecl关键字说明)按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。 _cdecl是C和C++程序的缺省调用方式。转载 2010-12-13 23:30:00 · 744 阅读 · 0 评论 -
简介TinyXml及使用
<br /> 目前XML的解析主要有两大模型:SAX和DOM。<br /> SAX是基于事件的,其基本工作流程是分析XML文档,当发现了一个新的元素时,产生一个对应事件,并调用相应的用户处理函数。这种方式占用内存少,速度快,但用户程序相应得会比较复杂。<br /> DOM(文档对象模型),则是在分析时,一次性的将整个XML文档进行分析,并在内存中形成对应的树结构,同时,向用户提供一系列的接口来访问和编辑该树结构。这种方式占用内存大,速度往往慢于SAX,但可以给用户提供一个面向对象的原创 2010-12-14 22:47:00 · 3001 阅读 · 0 评论 -
printf、sprintf与fprintf 的用法区分
1: fprintf()#include int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如 char name[20] = "Mary"; FILE *out; out = fopen( "output.txt", "w" ); if( out != NULL )转载 2010-12-14 22:02:00 · 5873 阅读 · 0 评论 -
c标准库源代码之 memcpy/memcmp/memset
<br />void * memcpy (dstpp, srcpp, len) void *dstpp; const void *srcpp; size_t len; { unsigned long int dstp = (long int) dstpp; unsigned long int srcp = (long int) srcpp; /* Copy from the beginning转载 2011-01-09 10:35:00 · 991 阅读 · 0 评论