vc
文章平均质量分 52
liuy_yy
回首这十年,碌碌无为,惭愧
展开
-
BioSub-视图类OnTimer
设置定时器定时40毫秒void CScanViewerView::OnInitialUpdate(){```` SetTimer(0,40,NULL); ````} 想象成一个水池子,pDoc->AddFrames(&(pIO->pInBuffer[0]),dwCurNum);往水池注水(加入数据)void CScanVie原创 2010-03-19 09:54:00 · 521 阅读 · 0 评论 -
关于第三方控件iocomp.v3.04.SP2.Full.Source.Delphi.BCB.ccrun.979157的注册
控件名称:iocomp.v3.04.SP2.Full.Source.Delphi.BCB.ccrun.979157其他机器上(xyb)以前装过iocomp.v3.04控件包里的绘图控件,我在自己写的程序里还用了其它控件包里的其它控件,所以在其机器上运行我的程序时绘图控件能正常显示,但程序里用到的其它控件则提示没有安装或者没有注册之类尝试运行iocomp.v3.04.SP2.Full.Source.Delphi.BCB.ccrun.979157控件包里的注册文件后仍然不行解决:运行vb,新建一个程序,在pro原创 2010-06-28 20:45:00 · 2815 阅读 · 0 评论 -
sprintf
<br />sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。<br /><br />sprintf 是个变参函数,定义如下: <br />int sprintf( char *buffer, const char *format [, argument] ... ); <br />除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华原创 2010-07-02 14:28:00 · 1201 阅读 · 0 评论 -
debug assertion failed, file:dlgdata.cpp,line43
<br />经常在删除已经添加的控件后,会出现以上错误<br />看看DoDataExchange函数<br />void CTransDlgBar::DoDataExchange(CDataExchange* pDX){// CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTransDlgBar) DDX_Control(pDX, IDC_EDIT_T17, m_edtRequest);//此控件已经不存在,此句人工删除 DDX_Cont原创 2010-07-14 15:27:00 · 3968 阅读 · 0 评论 -
vector 容器
vector g_vLeftFootMaxForce;构造一个空的容器。此时g_vLeftFootMaxForce.size() 返回0。使用前先g_vLeftFootMaxForce.push_back(10);即向容器里增加一个值为0的元素。此时g_vLeftFootMaxForce.size() 将返回1。既表明容器里存在一个元素了。通过g_vLeftFootMaxForce[0]即可访问容器里第一个元素了。注意事项:通过下标访问容器里的元素是从下标0开始的。也就是说访问容器里面最后一个元素代码应该是原创 2010-06-08 11:15:00 · 468 阅读 · 0 评论 -
visual assist使用中出现的问题
<br />1、为什么明明已经定义了的变量却显示红下划线?<br />2、无法智能提示?(删除工程目录下的.opt.ncb.clw以及Debug和Release等输出目录,然后重新打开,一般就OK了!如果实在不行,装visual assist6)<br /> <br />原因:visual assist版本问题,换其他版本!原创 2010-06-08 11:30:00 · 756 阅读 · 0 评论 -
程序风格---数组下标全部从1开始
<br />一、数组下标全部从1开始<br /> 如需定义一个大小为13的数组,则应该这样定义: double dData[14]; <br /> 实际使用中数组下标从1开始,即让0下标空着不用即可!<br /> <br /> 实际上数组dData有14个元素,即从dData[0]到dData[13]<br /> 但实际使用中dData[0]不用,使用dData[1]到dData[13]<br />原创 2010-06-10 09:53:00 · 5628 阅读 · 0 评论 -
基于usb的数据采集系统设计 学习笔记一
固件程序设计、驱动程序设计、应用程序设计固件程序设计固件是整个usb数据采集系统中设备程序设计的重要部分,固件程序的主要功能是让主机(PC机)可以检测和识别usb设备,一般包括两项任务:1)实现设备配置并将配置信息告知主机,为主机和设备之间的通信做好准备 2)根据用户的特定需求,实现对外围设备的具体控制。带有usb控制芯片的单片机AT89C5131的固件设计工作主要包括:us原创 2010-03-19 10:18:00 · 1534 阅读 · 2 评论 -
多线程-自动和人工
默认是自动事件(false)自动:自动设置设置为无信号状态故自动事件不需要调用ResetEvent 人工:需人工设置为无信号状态,否则将一直处于有信号状态(激发态)。原创 2010-03-19 10:06:00 · 494 阅读 · 0 评论 -
在VC++中定义全局变量及类
全局变量一般这样定义:1。在一类的.cpp中定义 int myInt;然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。2。在stdafx.cpp中加入:int myInt;然后在stdafx.h中加入:extern int myInt这样定义的变量以后无论在什么文件中都可见的.3。比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个E原创 2010-01-29 10:09:00 · 3411 阅读 · 1 评论 -
VC++ MFC 多线程及线程同步
VC++6.0; 线程同步;临界区;事件;互斥;信号量; 使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的转载 2010-02-03 14:57:00 · 712 阅读 · 0 评论 -
多线程编程之四——线程的同步
八、线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能转载 2010-02-11 16:10:00 · 385 阅读 · 0 评论 -
多线程间实现数据共享(传递)方法
1、申请全局数据块 比如队列 2、利用共享内存(文件映射)技术 同时对共享资源的访问做好同步与互斥操作原创 2010-02-08 16:06:00 · 1985 阅读 · 0 评论 -
多线程中对全局变量(整型类型)是否需要同步操作
背景:如果有一个类型为int的全局变量a, 线程A对a仅进行读操作,线程B对a仅进行写操作,那么两个线程在操作a时是否需要加锁来保持同步呢? 这个不能简单判断一定要加锁或是不加锁。要分情况讨论。 情况一:如果线程A读取a的目的仅为了显示给界面,或者a满足一定条件后执行某些操作,而在执行这些操作过程中对a是否发生了变化并不关心;一定间隔时间后又同样执行上述操作。这转载 2010-02-08 13:05:00 · 1572 阅读 · 2 评论 -
多线程编程之一——问题提出
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000);转载 2010-02-11 15:41:00 · 417 阅读 · 0 评论 -
多线程编程之三——线程间通讯
七、线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。 使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准转载 2010-02-11 15:58:00 · 389 阅读 · 0 评论 -
多线程编程之二——MFC中的多线程开发
五、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言转载 2010-02-11 16:11:00 · 407 阅读 · 0 评论 -
static控件动态透明显示的完美解决方案
在有背景图片的对话框中,static控件的透明显示是一个非常普通的问题。常用的解决办法可以通过重载OnCtlColor函数设置背景透明,再返回一个空画刷来解决。 if(nCtlColor == CTLCOLOR_STATIC ) { pDC->SetBkMode(TRANSPARENT);//设置背景透明 pDC->SetTextColor(RGB(255,255,0));原创 2012-01-24 17:45:17 · 1956 阅读 · 0 评论 -
OnEraseBkgnd、 OnPaint、 OnCtlColor的作用
CWnd::OnEraseBkgnd( CDC* pDC );The framework calls this member function when the CWnd object background needs erasing (for example, when resized).(翻译:当CWnd对象的背景需要擦除时候框架会调用此成员函数)Remark:It is ca翻译 2012-01-15 13:30:11 · 2711 阅读 · 0 评论 -
CPaintDC 、CWindowDC、 CClientDC、 CDC的区别与联系
CPaintDC 、CWindowDC、 CClientDC、 CDC关系图:一句话概括:CPaintDC 无效区dc, 相当于BeginPaint, EndPaint CClientDC 客户区dc, 相当于GetDC, ReleaseDC CWindowDC 整窗口dc, 相当于Ge原创 2012-01-11 08:55:47 · 15510 阅读 · 2 评论 -
关于非模式对话框窗口及其对象的概念
关于非模式对话框窗口及其对象的概念,请参见《vc技术内幕》p127-p132中的几段话:请参见《vc技术内幕》p127-p132中的几段话:1、对话框的创建和取消完全取决于用户操作(通过DestroyWindow),而对话框对象则将直到应用程序被终止时才会被删除(在视图类的析构函数中删除之)。2、除了主框架窗口之外,对于几乎所有的窗口类型,DestroyWindow函数都不会将C++对原创 2011-12-23 10:58:25 · 736 阅读 · 0 评论 -
在采集程序中,定时器函数和WindowProc函数存在的一些问题
在采集函数中,WindowProc函数负责处理下位机传输上来的数据(ThreadExecute_Read函数在读取数据后发送MSG_READ_COMPLETION消息,WindowProc函数接收到此消息后表示可以处理已经收到的数据了),定时器函数负责显示数据。这里涉及了一个多线程ThreadExecute_Read,一个高精度定时器mycallback,一个普通定时器OnTimer。多线程T原创 2011-12-16 11:49:51 · 1396 阅读 · 0 评论 -
程序退出时意外终止和程序不能关掉(必须通过任务管理器关闭)的原因
前不久做了一个划船器的项目,程序出现了两个bug,一个是程序退出时候意外终止,一个是程序不能关掉(程序界面关闭后在任务管理器中仍然贮存)。本来不是很难的bug,但由于两个错误混在一起再加上自己的能力有限,使得解决过程异常艰难,最后不得已采取最土的办法,将程序一层一层拨掉最后才发现问题所在。现做个总结如下:1、程序不能关掉的原因是类CBioUSBAPI的问题,当在程序中实例化一个类CBioU原创 2011-12-13 11:38:05 · 4336 阅读 · 0 评论 -
vs2008下配置virtools sdk开发包
virtools sdk自带的教程教导了如何在vs2003下配置virtools开发环境,如下:In order for this App Wizard to be available, copy the content of the SDK/Utils/Wizard to C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7 (or the原创 2011-11-24 15:55:10 · 2837 阅读 · 3 评论 -
赛艇程序文档说明之二:frmAnalysis1模块级变量定义说明
'Dim m_sngFootXZero() As Single 'X方向脚蹬力传感器零点 Dim m_sngFootYZero() As Single 'Y方向脚蹬力传感器零点Dim m_sngFootZZero() As Single 'Z方向脚蹬力传感器零点Dim m_sngFootMxZero() As Single 'Mx方向脚蹬力传感器零点原创 2010-12-11 17:00:00 · 531 阅读 · 0 评论 -
疑惑
void CMatchDlg::OnPaint(){ //添加背景图片,自适应对话框大小。 CPaintDC dc(this); CBitmap bmpBk; bmpBk.LoadBitmapW(IDB_BITMAP_tempbk); //m_bmpBK.LoadBitmapW(IDB_BMPBK); BITMAP bmpSize; bmpBk.GetBitmap(原创 2012-02-18 14:24:15 · 634 阅读 · 0 评论 -
试验:空调等功率较大电器对信号的影响!
试验方案接左脚、左桨、加速度三个通道;右脚、右桨通道不接传感器,空载。 采集部分 正常 数据部分共采集三条数据。第一条采集时候系统在空调正面第二条采集时候系统在空调侧面第三条采集时候系统在空调侧前方 第一条:不正常。左脚、左桨通道异常跳动,且非常明显;右脚、右桨通道正常。说明空调影响的是ad放大电路这块,也就是说信号的不稳定主要由于空调对放大原创 2011-01-29 22:38:00 · 895 阅读 · 0 评论 -
如何查看类对象数组中类成员变量的全部值,类成员变量也是数组。
代码:•••• g_nPersonCount=5; vector g_vRower(g_nPersonCount); g_vRower[0].m_vOar.push_back(3.78); g_vRower[0].m_vOar.push_back(11.28); g_vRower[0].m_vOar.push_back(14.38);••••如上所述:g_v原创 2012-01-29 11:11:11 · 1626 阅读 · 0 评论 -
VC++中应当注意对VC字符集的设置(非常好的一篇文章)
http://www.duote.com/tech/5/14966.html转载 2012-01-31 10:14:19 · 1215 阅读 · 0 评论 -
vc常见错误汇总
(转载)dlgdata.cpp Line 43 错误原贴地址地址:http://www.cnblogs.com/VRS_technology/archive/2010/08/04/1792168.html一般是控件绑定了变量,该控件被删除后,忘记在DoDataExchange中将其对应的DDX_语句删除。只要删除就OK了。最好resource里的资源ID也一起干转载 2012-11-23 16:27:42 · 842 阅读 · 0 评论 -
对 《试验:空调等功率较大电器对信号的影响!》 一文的讨论以及最后结论!
在上文中通过试验得出结论空调对AD放大电路有严重干扰。今天继续做系统测试,测试环境与上文测试环境一致,但所使用的控制器换成了6号和8号(上次控制器是7号),所接的传感器上次没有做记录,这次传感器编号都记录在案。 试验结果是,6号和8号所采集的传感器信号一切正常,从这次试验来看,上次得出的结论是不成立的,空调对采集并没有形成干扰。 既然排除了干扰的问题,现在的问题是,上次7原创 2011-02-08 11:05:00 · 1004 阅读 · 0 评论 -
socket 怎么发送一个变量值
发送都是char类型的 可以定义一个结构体变量 结构体里面有float double类型的数据struct person{char name[20];int age;float high;};/*可在发送数据的地方对数据进行处理,将其转换成一个字符串进行传送,而在接受方定义相同的结构体对这个字符串进行解析即可。*///发送方代码如下:char原创 2010-01-29 10:01:00 · 1817 阅读 · 0 评论