
C C++学习
文章平均质量分 68
gc315630
这个作者很懒,什么都没留下…
展开
-
自己尝试写的非常简单串口调试助手
1.建立项目: 打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest; 2.在项目中插入MSComm控件 选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表原创 2009-09-11 22:37:00 · 5960 阅读 · 0 评论 -
在 VC 中编译 IJG JPEG 函数库
第一步:修改一些IGC源文件/******************* Changes to jpeglib.h **************************/#ifndef JPEGLIB_H#define JPEGLIB_H/* HJH modification: added extern "C" { when __cplusplus detected */#if原创 2009-12-07 20:13:00 · 1206 阅读 · 0 评论 -
linux用户空间和内核空间延时函数
Linux 下的延时函数分为用户空间延时和内核空间的延时.用户空间:最常用的延时函数是sleep(),但是其时间延时精确到s,不能满足很多情况下的要求,在linux下,有一个延时函数,可以精确到us级,那就是usleep()比如要延时一妙,usleep(1000000);内核空间:udelay(int n); 延时n微秒 mdelay(int n); 延时n毫秒 nde原创 2009-12-09 16:36:00 · 2894 阅读 · 0 评论 -
在MFC的窗口创建之后修改窗口的标题
说明:先建立一个单文档SDI的工程,工程名任取,注意,这个是“文档”,在MFC里,封装了一些信息,框架的默认默认窗口样式(style)是WS_OVERLAPPEDWINDOW和FWS_ADDTOTITLE的组合,FWS_ADDTOTITLE的意思是把文档的标题作为框架窗口的标题,因此,要去掉这个。框架窗口创建之后修改,在 CMainFrame的OnCreate( )函数中编写代码修改。方法原创 2010-01-01 21:26:00 · 2737 阅读 · 0 评论 -
socket编程中需要用到的头文件
sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数 其他在网络程序中常原创 2010-01-09 10:40:00 · 722 阅读 · 0 评论 -
两台虚拟机Linux系统socket通信
服务器:#include #include #include #include #include #include #include #define SERVER_PORT 20000 // define the defualt connect port id#define LENGTH_OF_LISTEN_QUEUE 10 //length of listen queue in ser原创 2010-01-11 14:36:00 · 1945 阅读 · 0 评论 -
Windows下socket网络通信
要链接一个ws2_32.lib的库文件服务器端代码如下:#include #include void main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData原创 2010-01-11 14:38:00 · 553 阅读 · 0 评论 -
vlc的应用之一:在命令行下的使用
<br />如果编译得到没有界面的vlc,双击运行后就没法手动选打文件或网络了。在这介绍几个vlc的命令行命令。 1. vlc帮助vlc --help <br />or <br />vlc --help --advanced 2. vlc的debug logvlc -vv --extraintf=logger 运行的log将会保存在vlc-log.txt中。 3. vlc打开文件vlc -vv --extraintf=logger d:/01.avi 4. 作为服务器通转载 2010-07-03 21:35:00 · 905 阅读 · 0 评论 -
window程序DEBUG和RELEASE 版本差异及调试相关问题
<br />. 内存分配问题 <br />1. 变量未初始化。下面的程序在debug中运行的很好。<br />thing * search(thing * something)<br />BOOL found;<br />for(int i = 0; i < whatever.GetSize(); i++)<br />{<br />if(whatever[i]->field == something->field)<br />{ /* found it */<br />found = TRUE;<br />转载 2010-07-05 15:59:00 · 1212 阅读 · 0 评论 -
MFC打开/保存文件对话框:CFileDialog
CFileDialog<br />文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: <br />CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pP原创 2010-07-05 17:19:00 · 958 阅读 · 0 评论 -
MFC的中文路径的解决问题Ansi、Unicode、UTF8字符串之间的转换
本人自己创作和测试的。path是原来的目录//////////////////////////////////////////////////////////////////////// ////////////////////以下是解决了中文目录的问题 int a=::MultiByteToWideChar(CP_ACP,NULL,path,strlen(path),NULL,0); // 分配空间要给'/0'留个空间,MultiByteToWideChar不会给'/0'空间 wchar_t *原创 2010-07-07 17:36:00 · 3307 阅读 · 0 评论 -
vlc的应用之八:MFC调用libvlc.dll
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeremiah.blog.51cto.com/539865/184115本篇博客将简单介绍MFC调用libvlc.dll作一个简单的播放器,抛砖引玉,各位VC++达人继续深入研究,Jeremiah对VC++确实不太感兴趣,所以就不做太深入的研究了。 2009.10.29修改:加入clip_children属性设置。参考第1步。2010.04.14修改:中文路径问题。参考第7步。转载 2010-07-06 15:51:00 · 1095 阅读 · 0 评论 -
稳定排序和不稳定排序
<br />这几天笔试了好几 次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前 已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人 准备的。 <br /> 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果A原创 2010-08-10 13:52:00 · 793 阅读 · 0 评论 -
Malloc与new的区别
<br />1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。<br /><br />2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。<br /><br />3,因此C++语言需要一个能完成原创 2010-08-24 09:05:00 · 11184 阅读 · 1 评论 -
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
在创建MFC项目时,如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如我今天遇到的:<br />LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main<br />解决方法:<br />控制台项目要使用windows子系统, 而不是console, 设置:<br />[Project] --> [Settings] --> 选择"Link"属性页,<br />在Project Options中将/subsystem:原创 2010-09-05 11:45:00 · 994 阅读 · 0 评论 -
细说 #pragma pack(n)
<br />在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。<br />例如,下面的结构各成员空间分配情况:<br />struct test <br />{<br /> char x1;<br /> shor原创 2010-10-12 09:34:00 · 651 阅读 · 0 评论 -
VC插件
VC 常用插件 1.Visual Assist(强烈推荐)http://www.wholetomato.com/ VA从5.0一直到现在的VAX,功能越来越强大,除了以前版本中的自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标示错误等等以外,最新的版本中还在WorkSpace窗口中加入一个VA View,可以更方便的查找工程中的文件、类和变量。2.WndT原创 2009-12-06 20:37:00 · 517 阅读 · 0 评论 -
利用IJG JPEG Library压缩图像为jpg格式
关键字: jpeg,图像压缩摘要:文章介绍了采用libjpeg压缩图像的方法前一段时间做了一个项目,项目中有一部分是关于图像采集的,相关硬件有:高速数字相机(我们采用Basler A312f),工控机,服务器。其中相机通过1394视频线连接到工控机的1394视频卡上,工控机与服务器通过百兆网连接。具体工作流程为:工控机控制相机采集图像,帧率一般为40HZ左右,采集的图像为位图数据,需要自己原创 2009-12-07 20:17:00 · 803 阅读 · 0 评论 -
VC常用插件和界面库
VC 常用插件 1.Visual Assist(强烈推荐)http://www.wholetomato.com/ VA从5.0一直到现在的VAX,功能越来越强大,除了以前版本中的自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标示错误等等以外,最新的版本中还在WorkSpace窗口中加入一个VA View,可以更方便的查找工程中的文件、类和变量。2.WndT转载 2009-12-03 22:11:00 · 552 阅读 · 0 评论 -
VC编译器使用Matlab_Com组件的方法
本文根据作者亲自在VISUAL C++ 6.0编译器环境下,实现了MATLAB中COM组件的开发而写成。此方法的实现是在网上各位前辈的基础上完成的。现在,就具体谈一下怎么把一个M文件或MEX文件,做成可以脱离MATLAB环境的COM组件,并且被VC++调用。1. 首先,设置合适的编译器。在MATLAB命令窗口里敲:mbuild –setup 和 mex –setup,完成编译器的设置。●原创 2009-09-22 20:35:00 · 2167 阅读 · 0 评论 -
#ifdef的妙用
这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endi原创 2009-09-21 15:57:00 · 690 阅读 · 0 评论 -
MATLAB与C/C++混合编程之MATLAB调用C程序
通过把耗时长的函数用c语言实现,并编译成mex函数可以加快执行速度。Matlab本身是不带c语言的编译器的,所以要求你的机器上已经安装有VC,BC或Watcom C中的一种。如果你在安装Matlab时已经设置过编译器,那么现在你应该就可以使用mex命令来编译c语言的程序了。如果当时没有选,就在Matlab里键入mex -setup,下面只要根据提示一步步设置就可以了。需要注意的是,较低版本的在设置原创 2009-09-22 20:42:00 · 991 阅读 · 0 评论 -
Matlab接口的学习
1 稀疏矩阵式阵列的一种特殊类型,包含了大量的0元素。例如m*n的矩阵,非零元素的个数为nnz,存储这nnz个元素的向量长度是nzmax,MATLAB将次稀疏矩阵按另一种方式进行存储 (1) 第一个向量使用浮点数存储稀疏矩阵中的所有元素,长度为nzmax (2) 第二个向量存储第一个向量中对应元素的行索引值,整型变量,长度也是为nzmax (3) 第三个向量存储了n+1个整型指针原创 2009-09-19 15:48:00 · 508 阅读 · 0 评论 -
亲密接触VC6.0编译器
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 闲话少说。我们原创 2009-09-21 16:17:00 · 358 阅读 · 0 评论 -
EnableWindow()函数的应用
函数原型: BOOL EnableWindow(HWND hWnd, // handle to window (i)BOOL bEnable // flag for enabling or disabling input (i)); 函数功能: 该函数禁止/允许指定的窗口或控件,以便拒绝/接受鼠标和键盘的输入。禁止时,窗口不响应鼠标和按键的输入,转载 2009-10-19 21:48:00 · 4926 阅读 · 0 评论 -
Matlab中的P代码文件
Matlab中的P代码文件我们经常把语句或函数写在一个M文件里,比如:% ----------------------% test.ma = 1;b = 2;% ----------------------这个M语句文件,或:% ----------------------% test2.mfunction a = test2(b)a = b * 2;% --------------原创 2009-11-10 09:31:00 · 1763 阅读 · 0 评论 -
assert.h
assert.hassert.h是c标准库的一个头文件,该头文件的主要目的就是提供一个assert的宏定义,该宏的主要作用就是加强在程序中critical places的断言,推崇在程序调试的过程中用assert,但是在一个最终的程序中不应该出现assert,不是出现问题就报错然后exit出来,而是要能很好的处理错误。下面看如何定义assert这个宏的:/****assert.h - d原创 2009-11-11 16:27:00 · 1665 阅读 · 0 评论 -
C标准库头文件 assert.h
C标准库头文件 assert.h@函数名称: assert函数原型: void assert(int exp)函数功能: 诊断类:表达式结果正确性测试并可使程序中止函数返回: 参数说明: 将错误信息输出到流stderr中,如果exp为0,则中止程序执行.exp-表达式所属文件: #include #include void process_string(cha转载 2009-11-11 16:29:00 · 1130 阅读 · 0 评论 -
GetWindowLong说明及应用
“窗口类的封装,从全局窗口消息处理到窗口对象消息处理的映射方法: 对界面进行封装,一般都是一个窗口一个类,比如实现一个最基本的窗口类CMyWnd,你一定会把窗口过程作为这个类的成员函数,但是使用WINAPI创建窗口时必须注册类WNDCLASS,里面有个成员数据lpfnWndProc需要WNDPROC的函数指针,一般想法就是把窗口类的消息处理函数指针传过去,但是类成员函数除非是静态的,否则无法原创 2010-01-14 09:33:00 · 556 阅读 · 0 评论 -
如何获得窗口句柄(HWND )和改变窗口属性
1、 对于一个窗口如何进行操作呢,首先要得到其使用句柄,我们可以用FindWindow()函数来获取当前窗口句柄,具体使用如下: HWND hFig = ::FindWindow(NULL,HWND); 如果得到找到,则返回窗口的句柄,否则返回NULL。 当然我们可以使用 SetWindowPos(HWND hWnd, HWND hWndIsertAfter, int X, int原创 2010-01-14 09:49:00 · 2060 阅读 · 0 评论 -
socket关闭的close和shutdown区别
socket关闭close和shutdownsocket关闭有2个close,shutdown他们之间的区别:close-----关闭本进程的socket id,但链接还是开着的,用这个socket id的其它进程还能用这个链接,能读或写这个socket idshutdown--则破坏了socket 链接,读的时候可能侦探到EOF结束符,写的时候可能会收到一个SIGPIPE信号,这转载 2010-01-18 09:34:00 · 498 阅读 · 0 评论 -
MATLAB中运行时间的函数
clear;sqr = zeros(1,1000);tic;for ii = 1:1000 sqr(ii) = ii.^2;endtim = toc;fprintf(version: tic --toc : the for statements use time %15.5f./n,tim); clear;sqr = zeros(1,1000);ti原创 2009-11-23 15:44:00 · 808 阅读 · 0 评论 -
VC最常用操作程序20项列举
一、打开CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); 二、关闭CD_ROM mciSendString("Set cdAudio door closed wait",NULL,0,NULL); 三、关闭计算机OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息原创 2010-01-24 16:23:00 · 415 阅读 · 0 评论 -
GetCursor和GetCursorPos的区别
GetCursor函数功能:该函数检取当前光标的句柄。函数原型:HCURSOR GetCursor(VOID);参数:无。返回值:返回值是当前光标的句柄,如果没有光标,返回值为NULL。以下代码将在form上画一个鼠标:Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal原创 2010-01-27 09:58:00 · 8363 阅读 · 1 评论 -
计算24点问题的详细解析(含源码)
24点游戏 数字游戏题解 by starfish [说明:此文改编自我写的一篇解题报告,原题是某年国家集训队组队赛题目] 问题描述 80年代全世界流行一种数字游戏,在中国我们把这种游戏称为“24点”。现在我们 把这个有趣的游戏推广一下:您作为游戏者将得到6个不同的自然数作为操作数, 以及另外一个自然数作为理想目标数,而您的任务是对这6个操作数进行适当的算 术运算,要求运算结果小于或等于理想目标数,并且我们希望所得结果是最优的, 即结果要最接近理想目原创 2010-10-30 21:10:00 · 4308 阅读 · 2 评论