随笔分类 - C/C++
摘要:CComboBox 控件的下拉列表的高度默认很小,很难看。网上查来查去终于发现如何设置。很巧妙,要在设计视图上单击下拉列表的小箭头。这时会发现出来的边框和点其它的位置是不同的。这个高度就是下拉列表的不出现滚动条的高度。把这个框拖下去一些就解决问题了.希望对和我遇到同样问题的同学有所帮助。
阅读全文
摘要:TRACE是VC++下强大的打印调试函数今天在做调试的时候总是在TRACE处 ASSERT后来做了一个小测试char str[508];TRACE(str);正常TRACE char str[509]; TRACE(str);ASSERT 弹出断言错误出在 dumpout.cpp中 nBuf = _vsntprintf(szBuffer, _countof(szBuffer), lpszFormat, args);//这一行返回-1 // was there an error? was the expanded string too long? ASSERT(nBuf >= 0);//运
阅读全文
摘要:二级指针应当慎用首先是由于它难于被理解,另外就是指针的任何一层为NULL所造成的后果都是严重的.二级指针只有在非常需要的时候才应该去使用,比如一个函数需要返回一个指针的情况下.在任何情况下,能够使用引用就要避免使用指针.
阅读全文
摘要:size_t类型的定义是 unsigned intsize_t类型是sizeof()的返回值类型将一个函数的参数定义为size_t类型,通常表明这个参数是需要使用sizeof表达式计算结果来传入的例如:fwrite(strData,sizeof(char),len,pFile);函数的第二个参数,也就是说在需要表达参数是一个类型的长度的语义的时候,应该定义为size_t
阅读全文
摘要:字符八进制十进制十六进制字符八进制十进制十六进制字符八进制十进制十六进制字符八进制十进制十六进制nul000sp403220@1006440'1409660soh111!413321A1016541a1419761stx222"423422B1026642b1429862etx333#433523C1036743c1439963eot444$443624D1046844d14410064enq555%453725E1056945e14510165ack666&463826F1067046f14610266bel777`473927G1077147g14710367bs
阅读全文
摘要:VS2008中的MFC工程和VC6.0中的向导有所不同,它默认的字符集是Unicode,按照默认值选下去,最后生成的工程可能中文会显示为乱码,我就遇到了这种情况总结一下,要注意以下几个地方.首先在Wazard中有要求选择资源文件的语言,一定要选择为中文这个是最重要的.否则之后工程里面的选项怎么改可能都还是乱码.注意了这个之后,再注意,工程的属性,里面的Charset是Use Unicode Character Set在编码的时候 所有的字符串包上宏_T("your string goes here"); 这个宏可以保证如果你以后可能面临改变字符集的风险,不用去一个一个的改字
阅读全文
摘要:根本原因在与左值和右值chara[10]=“hello”;sizeof(a);//数组名做左值,具有数组名的属性,是一个指向数组首地址的常量指针strcpy(a,"abc");//数组名做右值,退化为普通的指针原文链接:http://hi.baidu.com/%D2%C0%BD%A3%D0%F9/blog/item/7bbf36966c92f36a54fb9663.html作者:宋宝华 e-mail:21cnbao@21cn.com1. 引言指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许
阅读全文
摘要:GNU科学计算库 GNU Scientific Library是一个跨平台的科学计算库。可以满足日常科学计算的大部分需要。它包含了矩阵运算、数值计算,傅里叶分析,小波分析、统计分析、最优化等数学需要的方方面面的知识。总之站在巨人的肩膀上才能走的更高更远!!1. 下载GNU Win32开发包http://gnuwin32.sourceforge.net/packages/gsl.htm2. 找到安装目录关注下面的几个文件夹中的文件/bin/gsl-histogram.exe 用于计算数据直方图的程序gsl-randist.exe 用于生成服从指定分布数据的程序libgsl.dll gsl动态库函
阅读全文
摘要:PlatformSDK:WindowsMultimedia中的timeSetEvent函数和timeKillEvent函数可以启动和停止一个精度达到1ms的高精度定时器。原型:MMRESULT timeSetEvent( UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent );ParametersuDelay Event delay, in milliseconds. If this value is not in the range of the minimum an
阅读全文
摘要:#include <stdio.h>int sort_bubble(int arr[],int len);int sort_bubblemod(int arr[],int len);int reverse_half(int arr[],int len);void main(){ //int num[10]={3,8,9,2,5,7,6,0,4,1}; int num[10]={0,1,2,3,4,5,6,7,8,9}; for (int i=0;i<10;i++) { printf("%d/t",num[i]); } int cnt; //cnt=sort
阅读全文
摘要:在WindowsXP等NT内核的操作系统中,#include "conio.h"中定义的端口读写函数_inp,_outp已经不能直接使用了,这是因为Window的保护模式不允许对IO直接进行直接操作。但是在工业控制领域,对IO的读写是最基本的操作,尤其是对ISA总线或并口这类固定地址的存储设备的访问,我们必须能够高效的进行IO读写来进行数据采集。这里给出的解决方案是使用http://www.internals.com/提供的解决方案,即使用其网站上的WinIO.dll。其关键在与InitializeWinIo()函数调用之后,_inp,_outp函数可以被成功调用,在使用结
阅读全文
摘要:使用cout,cin要包含:#include <iostream>using namespace std;注意C++库文件都定义在名称空间std来防止名字污染,不同公司编写的库也会使用特有的名字空间来防止库污染(函数名称冲突)。预编译指令的作用://防止头文件被重复包含的预编译指令#ifndef BOOKSTORE_H#define BOOKSTORE_H#endif//用于调试#ifdef DEBUG cout<<"rendIn/n";#endif预定义的内部宏//对C++编译器和C编译器提供兼容支持#ifdef __cplusplus exter
阅读全文
摘要:原文链接:http://old.blog.edu.cn/user1/13760/archives/2005/288307.shtml调用约定:__cdecl __fastcall与__stdcall,三者都是调用约定(Calling convention),它决定以下内容:)函数参数的压栈顺序,)由调用者还是被调用者把参数弹出栈,)以及产生函数修饰名的方法。1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,2、_cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall
阅读全文
摘要:原文链接: http://hi.baidu.com/dandanfeng160/blog/item/4eaa3df5215bc42dbd310955.html在Windows程序设计中,句柄是无法精确定义的术语。随便找一个高手,让他给你讲讲句柄是什么,恐怕他都很难给你一个具体的定义来。在Windows程序设计中,句柄无所不在,窗口有窗口的句柄HWND,线程和进程也有句柄HANDLE,甚至有人把套接字也称为句柄(我就是这样的)。句柄在英文中是handle,作为动词讲是处理的意思。简而言之,句柄是处理对象的一个接口,对于程序中所涉及的对象,你可以通过句柄去操作他。你不应该试图去回答句柄是什么,而应
阅读全文
摘要:原文链接:http://hi.baidu.com/pavel_xu/blog/item/e6c27d29478a3aff98250a3a.html[转] #ifndef #define #endif的用法(整理) 原作者:icwk 文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:#ifndef <
阅读全文
摘要:原文链接:http://hi.baidu.com/baiyw920/blog/item/a06ddb986314fd0f6e068c0c.html __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式。其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI规范,而__declspec是一种扩展属性的定义。扩展属性语法简化并标准化了C和C++语言关于Microsoft的扩展。用法:__declspec ( extended-decl-modifier )extended-decl-modifier参数如下,可同时出现,中间有空格隔开: al
阅读全文
摘要:由于C++编译器需要支持函数的重载,会改变函数的名称,因此dll的导出函数通常是标准C定义的。这就使得C和C++的互相调用变得很常见。但是有时可能又会直接用C来调用,不想重新写代码,让标准C编写的dll函数定义在C和C++编译器下都能编译通过,通常会使用以下的格式:(这个格式在很多成熟的代码中很常见)#if defined(__cplusplus)extern "C" {#endif// 在这里写标准C程序,例如dll导出函数的定义#ifdef __cplusplus }#endif下面解释一下上面的代码:首先__cplusplus是C++编译器内部定义的宏,如果使用的C编
阅读全文