- 博客(55)
- 资源 (14)
- 收藏
- 关注
原创 在子线程中实现修改文本框内容
目的:图片处理线程中,每得到一张图片,图片总数++;当前结果为NG,错误图片总数++;思路:利用win32 API函数SetDlgItemText修改文本框内容。 BOOL SetDlgItemText( __in HWND hDlg, __in int nIDDlgItem, __in LPCTSTR lpString ); 第一个参数是窗口
2017-05-31 14:48:50 2091
原创 SetDlgItemText()与UpdateData()的区别
SetDlgItemText(IDC_EDIT_RXDATA,m_strREData); //前一个是ID号,后一个是编辑框的成员变量UpdateData(FALSE); 它们都能更新编辑框的内容。。。区别是UpdateData(FALSE)更新的是窗口中所有编辑框中的内容,,,如果窗口中有多个编辑框,只需要更新一个编辑框中的内容,结果更新了所有编辑框中的内容,造成别的
2017-05-31 11:28:01 2414
原创 图片处理线程异常终止
代码如下:while(true){Hobject checkImage;if(m_imageBuffer.is_not_empty()){m_imageBuffer.pop_back(&checkedImage);OutPutDebugString(_T("获取图片正常");}elsecontinue;...}调试运行的时候,只输出两次"
2017-05-31 09:07:30 383
转载 并发、并行、同步、多线程、异步的概念
1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步
2017-05-28 10:38:23 282
原创 volatile
volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.典型应用:多线程编程while循环中。volatile unsigned int m_exit; while(!m_exit) { if(m_exitFlag) break;//跳出while循环 if(m_dictRej
2017-05-27 17:53:29 165
原创 对成员变量重新定义
void CProcess::SetCurrentChannel(int currentChannel){ int m_crtChannel=currentChannel; //此处重定义,但编译通过,这样写合法?}class{...public: int m_crtChannel;...}导致的问题是,m_crtChannel的作用域仅限于成员函数SetCurren
2017-05-27 08:33:23 327
原创 CXX0017:错误;没有找到index符号
问题描述:debug下,添加变量监视,变量显示异常。提示 CXX0017:错误;没有找到index符号。
2017-05-26 19:59:12 951
转载 引用详解
转载自:http://blog.csdn.net/xiao__tian__/article/details/51814617C++中的引用:引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对C语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。其格式为:类型
2017-05-26 17:53:45 242
转载 Sleep函数的作用
关于VOID Sleep(DWORD dwMilliseconds);函数,许多人都觉得,它是告诉系统,延迟多少毫秒来执行后面的代码。但是,在WINDOWS这样的非实时多任务系统中,我们是无法估算会睡眠多久的。因为一个线程不是总是被执行的。它会在执行一段时间后,被系统暂停,然后系统又去执行另外的线程代码。于是,Sleep函数的解释如下:当调用Sleep函数的时候,比如Sleep(400);它告诉系
2017-05-26 15:07:22 11074
转载 类的两种实例化方法
转载自: http://blog.csdn.net/wujiangguizhen/article/details/30504777A a;A * a = new a();以上两种方式皆可实现类的实例化,有new的区别在于:1.前者在堆栈中分配内存,后者为动态内存分配,在一般应用中是没有什么区别的,但动态内存分配会使对象的可控性增强。2.不加new在堆栈中分配
2017-05-26 11:13:30 5805
原创 char 与 string的转换问题
一、 将char* 或char[ ]转换为string可以直接赋值。例如:string a;char* b1=“char”;char b2[]="char";a=b1;a=b2;二、将string转换为char*或者char[]string是c++标准库中的字符类,其封装了对字符串的常用操作。一般调用string类的c_str 函数完成。例如:strin
2017-05-26 09:32:37 596
原创 error C2597: 对非静态成员“CManager::m_moveSpeed”的非法引用
一 、转载自:http://blog.sina.com.cn/s/blog_5d51f4e9010130kl.html静态成员函数相当于全局函数,只是有一个类名字空间的限制。而类成员函数是成员内部的函数,同一个类的对象实例可以有很多,每一个实例都有自已不同的成员变量值,成员函数一般都是对成员自已的成员变量值在操作,所以调用成员函数,必须明确是对哪一个对象实例的操作。静态成员函数
2017-05-26 08:49:20 10687
原创 memset的作用
将所有的参数化成二进制之后填入一个字节,比如说,你第一个赋赋的是一百,转成二进制就是0110 0100,而int有四个字节,也就是说,一个int被赋值之后应该是0110 0100 / 0110 0100/ 0110 0100/ 0110 0100,转成十进制之后就是1,684,300,900,同理,赋1的结果就是 0000 0001/0000 0001/0000 0001/0000 000
2017-05-25 18:24:57 764
转载 CString与TCHAR数组 相互转换
转载自:http://blog.sina.com.cn/s/blog_673ccb5b0101412b.htmlTCHAR数组转到CString很简单:使用CString的Format就行。 TCHAR m_buf[100] = _T("Hello"); CString str; str.Format(L"%s",m_buf);CString转为
2017-05-25 17:03:26 14917 2
原创 调试中出现的问题(一)
之间的代码是:...TCHAR moduleFileName[260]; ::GetModuleFileName(NULL,moduleFileName, 260);(_tcsrchr(moduleFileName, _T('\\')))[1] = 0;m_moduleFileName=moduleFileName;//m_moduleFileName为类的私有变量,但是提示,这是
2017-05-25 16:38:01 390
原创 获取运行文件路径 ,TCHAR 转 CString
例子:获取运行文件上一级目录。将如下代码放在构造函数中。 TCHAR moduleFileName[260]; ::GetModuleFileName(NULL,moduleFileName, 260); (_tcsrchr(moduleFileName, _T('\\')))[1] = 0; m_imageFilePath = moduleFileName;//将路径保存在成
2017-05-25 15:16:14 674
转载 SetDlgItemText
函数功能:该函数设置对话框中控件的文本和标题。函数原型:BOOLSetDlgltemText(HWND hDlg,int nlDDlgltem,LPCTSTR IpString);参数:hDlg:指定含有控件的对话框。nlDDlgltem:标识带有将被设置的标题和文本的控件。IpString:指向一个以NULL结尾的字符串指针,该字符串指针包含了将被复制到控
2017-05-22 10:40:40 5727
转载 获取窗口句柄
转载自 :http://blog.csdn.net/dazhong159/article/details/79033821、使用FindWindow函数获取窗口句柄示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。[html] view plain copy#include W
2017-05-22 10:38:48 2375
原创 C++ 中 \ 的含义
\是行连续的意思,有这个符号,就是下一行是接着上一行的意思,就是下一行和上一行从语法上来说是一行,只是分成了多行来写。例如:#include#include#define STRING "Hello\world\I love U\n"int main(){printf(STRING);}运行结果:Helloworld I love U
2017-05-20 16:47:10 2007
转载 字符集(Charcater Set)与字符编码(Encoding)
字符集(Charcater Set或Charset):是一个系统支持的所有抽象字符的集合,也就是一系列字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。常见的字符集有:ASCII字符集、GB2312字符集(主要用于处理中文汉字)、GBK字符集(主要用于处理中文汉字)、Unicode字符集等。字符编码(Character Encoding):是一套法则,使用
2017-05-20 16:37:23 2077
转载 多字节字符与宽字节字符
转载自:http://blog.csdn.net/langb2014/article/details/52471256?locationNum=2&fps=1char与wchar_t我们知道C++基本数据类型中表示字符的有两种:char、wchar_t。 char叫多字节字符,一个char占一个字节,之所以叫多字节字符是因为它表示一个字时可能是一个字节也可能是多个字节。
2017-05-20 16:32:28 5002
转载 string,wstring,CString
转载自:http://blog.csdn.net/luliyuan/article/details/41083175一.概念 string是C++提供的标准字符串操作类.wstring是操作宽字符串的类. CString是对string(字符串)和wstring(宽字符串)的一个封装,常用在mfc中.用来解决编码问题的.二.转换
2017-05-20 16:26:09 389
原创 LPCTSTR的含义
LPCTSTR:LP代表指针、C代表不可改变、T代表根据是否定义UNICODE宏而分别define为char或wchar_t、STR代表字符串。例如:LPCTSTR lp="BMP Files(*.bmp)|*.bmp|任何文件|*.*||"; 在ansi下没问题,但在Unicode下不行。应写为LPCTSTR lp=_T(" ");若字符集
2017-05-20 16:14:32 9749
转载 C++中类的静态数据成员函数解析
转载自:http://blog.csdn.net/zieckey/article/details/1408767静态数据成员:下面看一个例子:#include class Point{public: void output() { } static void init() { } };void main( void ){ Point pt; p
2017-05-20 14:42:33 237
原创 HALCON使用心得
1. 二维的方法比较基础。三维的还要多学习,尤其是涉及到机械手引导定位和手眼标定的那一部分。2. halcon终究只是一个库,要结合VC进行编程。深入了解人机交互、运动控制等方面的知识。3. 要想走的更远,还是得多学openCV。算法是基础,代码实现是其次,关键是优化,提高速度。
2017-05-18 20:16:25 11599 8
转载 类的构造函数
转载自:http://blog.csdn.net/tiantang46800/article/details/6938762一、 构造函数是干什么的class Counter{public: // 类Counter的构造函数 // 特点:以类名作为函数名,无返回类型 Counter()
2017-05-18 19:41:49 248
原创 class CProcess的使用
由于相机类中会使用CProcess m_process。CProcess的声明在process.h中,这个时候没有必要#include "process.h",只要在头文件中加入class CProcess就可以了。这样编译器会自己在其它的文件中找CProcess的声明。
2017-05-18 16:38:43 831
转载 取址符的作用
int a;int b = &a; a、b指向同一个内存地址,对a的操作等同于对b的操作。int a; int *b = &a; b中储存的是a的地址。对(*b)的任何操作相当于对a的操作
2017-05-18 15:49:44 4446 2
转载 类模板
转载自:http://www.jizhuomi.com/software/55.html什么是类模板呢?类模板就是为类声明一种模板,使得类中的某些数据成员,或某些成员函数的参数,又或者是某些成员函数的返回值可以取任意的数据类型,包括基本数据类型和自定义数据类型。类模板的声明形式如下: template 类声明模板参数表中为:
2017-05-18 13:34:49 269
转载 BOOL和bool的区别
一、1、类型不同BOOL为int型bool为布尔型2、长度不同bool只有一个字节BOOL长度视实际环境来定,一般可认为是4个字节3、取值不同bool取值false和true,是0和1的区别BOOL取值FALSE和TRUE,是0和非0的区别二:bool是标准C++数据类型,可取值true和false。单独占一个字节,如果数个bool对象列
2017-05-17 14:43:32 1323
转载 回调函数介绍
转载自:http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针
2017-05-17 09:15:50 175
原创 队列queue的使用方法
#include #include using namespace std;int main(){int e,n,m;queue q1;for(int i=0;i{//入列,插入队列的末端。q1.push(i);}//判断队列是否为空,当队列为空时,q1.empty(),返回true.if(!q1.empty())cout//
2017-05-17 08:40:05 8040
原创 _access的用法(判断文件夹是否存在)
TCHAR moduleFileName[260]; ::GetModuleFileName(NULL,moduleFileName, 260);(_tcsrchr(moduleFileName, _T('\\')))[1] = 0;CString strPath = moduleFileName;strPath.Append(_T("\\test"));//获取与exe运行文
2017-05-16 18:56:50 3386
原创 vector的常用操作
1. clear() 清空所有元素2. empty() 判断Vector是否为空(返回true时为空)3. erase() 删除指定元素 (可以用指针来代替迭代器) iterator erase( iterator loc ); //要删除元素的迭代器 iterator erase( iterator start
2017-05-16 13:16:33 319
转载 ini文件的读写操作
转载自:http://blog.csdn.net/zhoubl668/article/details/3739051VC中用函数读写ini文件的方法 ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以
2017-05-16 10:13:14 5881
转载 MFC中添加变量为control和value的区别
转载自:http://www.cnblogs.com/lisuyun/articles/mfc.htmlcontrol型变量是这个控件所属类的一个实例(对象),可以通过这个变量来对该控件进行一些设置。而value只是用来传递数据,不能对控件进行其它的操作。添加了一个m_CtrlEdit的control型变量你可以调用控件支持的所有函数,如:m_CtrlEdit.GetStyle
2017-05-16 09:25:47 2025
原创 ./和../的作用
./是指当前目录../是指上一层例如:.h文件中包含与父目录位于同一个目录下的其它文件。#include "../tinxml/tinyxml.h"
2017-05-15 20:33:44 1486
转载 GetCurrentDirectory 和GetModuleFileNamed的区别
转载自:http://blog.csdn.net/buaalei/article/details/5211422一 DWORD GetCurrentDirectory( DWORD nBufferLength, LPTSTR lpBuffer);The GetCurrentDirectory function retrieves the curren
2017-05-15 18:13:19 244
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人