![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VC
jisuanjixu
暂时空着,:)
展开
-
使用ADO封装类的数据库程序开发实例[第二版] (下)
使用ADO封装类的数据库程序开发实例[第二版] (下)作者:成真 接上文《使用ADO封装类的数据库程序开发实例[第二版] (上)》CAdoRecordSet class:CAdoRecordSet:CAdoRecordSet::CAdoRecordSet()CAdoRecordSet::CAdoRecordSet(CAdoConnection *pConnection)void CAdoRec转载 2007-06-29 13:39:00 · 1110 阅读 · 0 评论 -
MFC-消息映射和消息传递
消息分类 Windows的消息都是以WM_xxx为名,WM_的意思是”Windows Message”.MFC把消息分为三大类:# 命令消息(WM_COMMAND):命令消息意味着”使用者命令程序做某些操作”.凡是UI对象产生的消息都是这种命令消息,可能来自菜单或加速键或工具栏按钮,并且都以WM_COMMAND呈现.如何分辨来自各处的命令消息?SDK程序主要靠消息的wParam识别之,转载 2008-02-25 12:30:00 · 536 阅读 · 0 评论 -
Visual C++线程同步技术
线程同步的方式有: 临界区 管理事件内核对象 信号量内核对象 互斥内核对象分别介绍如下:使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就转载 2008-02-26 11:28:00 · 540 阅读 · 0 评论 -
从MFC与ATL的男女关系说起
如果从哲学的观点来看,这大概要说是一种辩证关系了!首先谈谈男人。男人与男孩的区别在于责任,对于一个男人来说,他的肩膀永远有负担,他要解决生活中遇到的所有问题,可以为妻儿带来幸福生活,可以赡养父母,可以做一些成就来创一番事业。所以男人不要轻生,因为你垮下就意味着你的负担没有了支撑,也就是你不负责任。男人的这种责任体现了一种刚性,打不倒压不垮,坎坎坷坷一路走来即使没有扬名立万但是肩膀上的负担始终没转载 2008-02-26 10:28:00 · 560 阅读 · 0 评论 -
论函数调用约定
发表日期:2005年7月19日 出处:unknown 作者:unknown 在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多转载 2008-03-03 16:14:00 · 353 阅读 · 0 评论 -
Visual Studio 2005中编译调试新功能
在日常的编程中,程序员经常离不开的工作之一,就是调试。当写好一段代码或程序后,在运行后总会出现这样那样的问题,比如各样的错误,程序员就必须进行调试,将这些错误排除。在最新出炉的Visual Studio 2005中,将提供十分强大而方便的调试功能,从而使程序员能节约时间,提高工作效率。本文中,将主要介绍Visual Studio 2005 在调试方面新增加的几个重要功能,并介绍它们的简单用法。转载 2008-03-05 10:48:00 · 372 阅读 · 0 评论 -
VS2005快捷键大全
快捷键 功能CTRL + SHIFT + B生成解决方案CTRL + F7 生成编译CTRL + O 打开文件CTRL + SHIFT + O打开项目CTRL + SHIFT + C显示类视图窗口F4 显示属性窗口SHIFT + F4显示项目属性窗口CTRL + SHIFT + E显示资源视图F12 转到定义CTRL + F12转到声明CTRL + ALT + J对象浏览CTRL + ALT +原创 2008-04-09 12:09:00 · 380 阅读 · 0 评论 -
CListCtrl滚动条的一些问题搜集
(1)ICON形式中,如果设置属性中对齐方式为LVS_ALIGNTOP,那么当内容容纳不下时,只会出现竖直滚动条(Vertical Scroll)(2)ICON形式中,如果设置属性中对齐方式为LVS_ALIGNLEFT,那么当内容容纳不下时,只会出现水平滚动条(Vertical Scroll)(3)Report形式中,当行容纳不下时,出现竖直滚动条;当列容纳不下时,出现水平滚动条有转载 2009-10-27 16:22:00 · 1638 阅读 · 0 评论 -
MFC扩展DLL 小结
1、在DLL中启动多线程,用_beginThread()不能使用AfxBeginThread().2、DLL中与客户程序之间通信可以有2中方法: (1)通过消息,在DLL中增加一个自定义消息,此消息的ID注意不能和客户端程序中的消息重复。在客户端程序中将窗口句柄传给DLL,在客户端写上此消息的响应函数,这样就可以很方便的将DLL中的数据传输给客户端了。应用场合:只将数据从DLL传输原创 2009-11-12 22:07:00 · 543 阅读 · 0 评论 -
多线程调用MFC DLL、在MFC DLL创建多线程与线程安全
多线程调用: 1、动态库只有一个导出函数: 这种情况非常少,也是最容易处理的情况。这种情况下编写函数时,只需要考虑不要有冲突的全局数据就可以了。这里的全局数据包括了在堆中分配的数据块和静态全局变量等。如果存在这样的全局数据,那么进程中的不同线程访问这个函数就会造成冲突。 解决办法也很简单,就是尽量用堆栈(stack)来解决问题。由于堆栈的所有人是线程,所以它必然是线程安全的。当然也要注意避免堆栈转载 2009-11-13 09:58:00 · 968 阅读 · 0 评论 -
学会使用SafeArray
学会使用SafeArray也是很重要的,因为在ADO编程中经常要用。它的主要目的是用于automation中的数组型参数的传递。因为在网络环境中,数组是不能直接传递的,而必须将其包装成SafeArray。实质上SafeArray就是将通常的数组增加一个描述符,说明其维数、长度、边界、元素类型等信息。SafeArray也并不单独使用,而是将其再包装到VARIANT类型的变量中,然后才作为参数传转载 2009-12-18 16:28:00 · 369 阅读 · 0 评论 -
VC中的一些常用方法
<br />一、打开CD-ROM <br />mciSendString("Set cdAudio door open wait",NULL,0,NULL); <br />二、关闭CD_ROM <br />mciSendString("Set cdAudio door closed wait",NULL,0,NULL); <br />三、关闭计算机 <br />OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构 <br />OsVersionInfo.dwOSVer转载 2010-07-06 09:14:00 · 366 阅读 · 0 评论 -
MFC消息汇总
1、命令消息(WM_COMMAND) 所有派生自 CCmdTarget 的类都有资格接受WM_COMMAND。 2、Window消息(WM_xxx) 所有派生自 CWnd 的类都有资格接受 WM_xxx。 3、控件消息(WM_NOTIFY) 控件向其父窗口通知消息。 消息处理 1、WM_xxx 消息处理 窗口类(自身)处理→基类处理→CWnd∷DefWindowProc()处理; 其所对应的宏一般为在消息 WM_ 前面加上 ON_。 2、命令消息处理 命令消息来自命令用户接口对象(菜单、加速键或工具栏按钮)转载 2010-12-10 10:17:00 · 526 阅读 · 0 评论 -
safearray的使用方法
<br />安全数组可以存储多维数据。在标准C++表示中,可以定义这样的数组:long myArr[2][4]。在安全数组中,这种类型的数组就是2维(cDims)的。安全数组的每一维都有自己的SAFEARRAYBOUND结构,它由SAFEARRAY结构的rgsabound[]成员建立。每个SAFEARRAYBOUND定义了该维所含元素的数量和启始索引值。例如在数组 long myArray[2][4] 中,创建了两个SAFEARRAYBOUND结构,每一维都含有4个元素(cElements) 并且下限(lL转载 2010-10-22 15:45:00 · 3381 阅读 · 0 评论 -
VC ------CListCtrl使用技巧摘抄
1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”2. 设置list转载 2007-11-30 16:53:00 · 3051 阅读 · 1 评论 -
vc 错误总结
1,错误:“fatal error C1010: unexpected end of file while looking for precompiled header directive” 解决方案 :2种解决方案:(1),一个新添加的类的.cpp文件开头没包含stdafx.h,在该文件最前面加上即可(2),可以使用右键点击项目工程中的该cpp文件,选择setting,在c/c++栏,选原创 2007-09-27 11:20:00 · 1028 阅读 · 0 评论 -
使用ADO封装类的数据库程序开发实例[第二版] (上)
使用ADO封装类的数据库程序开发实例[第二版] (上)作者:成真 下载本文示例工程从上次在VC知识库发表《使用ADO封装类的数据库程序开发实例》一文后,得到许多网友的响应,甚觉欣慰。但由于我对ADO也非完全精通,所以上次写的类很不完美,甚至可能给某些朋友带来麻烦,因此一直想把它写得更完善一点。现在写的这个类功能应该说比较完善了,基本上封装了ADO组件的大部分方法,并扩展了一些人们常用到的方法,转载 2007-06-29 13:36:00 · 972 阅读 · 0 评论 -
任意分布的随机数的产生方法—VC程序实现方法
任意分布的随机数的产生方法—VC程序实现方法作者:戎亚新下载源代码 摘要: 随机数在实际运用中非常之多,如游戏设计,信号处理,通常我们很容易得到平均分布的随机数。但如何根据平均分布的随机数进而产生其它分布的随机数呢?本文提出了一种基于几何直观面积的方法,以正态分布随机数的产生为例讨论了任意分布的随机数的产生方法。 正文:一、平均分布随机数的产生 大家都知道,随机数在各个方面都有很大转载 2007-07-03 11:01:00 · 2325 阅读 · 0 评论 -
VC代码收集
一、改变视图背景色: 在CView的OnDraw函数中添写如下一段程序代码: void CFileNameView::OnDraw(CDC* pDC) { CFileNameDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rectClient; CBrush brushBkColor; GetClientR转载 2007-07-09 14:16:00 · 950 阅读 · 0 评论 -
关于窗口重绘
还是>里面一段代码 ,可以用鼠标拖动一个圆 :void CEx05cView::OnDraw(CDC* pDC){ CBrush brushHatch(HS_DIAGCROSS, RGB(255, 0, 0)); CPoint point(0, 0); // logical (0, 0) pDC->LPtoDP(&point);转载 2007-07-27 14:55:00 · 587 阅读 · 0 评论 -
VC++实现非窗口类中使用定时器的方法
定时器在Windows 的程序中的作用不可忽略,也随处可见。设定一个时间间隔每0.5秒或者1秒钟刷新一次时钟,这样就可以完成一个简单的电子钟程序。在不同的编程工具中定时器的用法也不同,Visual C++中也给我们提供了实现这种功能的方法,而且方法不只一种。在窗口类中是使用定时器比较很简单,用SetTimer()设置了定时器之后,并在Class Wizard中添加了WM_TIMER消息映射后,您就转载 2007-08-13 16:17:00 · 1498 阅读 · 0 评论 -
浅析:setsockopt()改善socket网络程序的健壮性
1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));转载 2007-08-15 17:04:00 · 659 阅读 · 0 评论 -
VC文件扩展名解读大全
.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project o原创 2007-08-14 15:04:00 · 472 阅读 · 0 评论 -
同步租塞SOCKET编程
大家都知道网络编程有异步非租塞方式,同步租塞方式,同步租塞方式逻辑简单,异步非租塞方式编程复杂.很多的C/S模式大都采用异步非租塞方式,在网络上也有大量的例子程序,而对于同步租塞方式却很少,下面代码为同步租塞方式予以参考: 注:服务器也使用的是同步方式 SOCKET sock; WSADATA WSAData; sockaddr_in addr; i原创 2007-08-24 09:14:00 · 916 阅读 · 0 评论 -
VC环境设置说明
所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢?先来看一下VC的处理流程,大致分为两步:编译和连接。源文件通过编译生成了.obj文件;所有.obj文件和.lib文件通过连接生成.exe文件或.dll文件。编译参数的设置。主要通过VC的菜单项Project->Settings->C/C++页来完成。我们可以看到这一页的最下面Projec原创 2007-06-07 17:02:00 · 799 阅读 · 0 评论 -
串口通信笔记
串口通信主要用到下面几个函数: CreateFile 打开通信端口 CloseHandle 关闭通信端口 GetCommState转载 2007-09-03 15:02:00 · 784 阅读 · 0 评论 -
VC中多线程编程
VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::O转载 2007-09-04 10:28:00 · 883 阅读 · 0 评论 -
安全退出线程方法
一,通过TerminateThread,虽然都不推荐使用这个函数,但是有的时候无奈之下也只能用这个了,但是,一定要保证没有内存泄露,可以这样使用: m_hThread//辅助线程; if(WaitForSingleObject(m_hThread,THREADSTOPWAITTIME)==WAIT_TIMEOUT) TerminateThread(m_hThread,0); C原创 2007-09-04 15:00:00 · 1115 阅读 · 0 评论 -
CTime COleDateTime的常用操作和比较
CTime COleDateTime的常用操作和比较1) 获取当前时间。CTime time;time = CTime::GetCurrentTime();2) 获取时间元素。int year = time.GetYear() ;int month = time.GetMonth();int day = time.GetDay();int hour = time.GetHour();int原创 2007-09-12 15:25:00 · 1219 阅读 · 2 评论 -
VC资源分配、释放表
资源 分配函数 清除函数 需要手动清除? ====================================================================== Accelerators转载 2012-02-07 11:23:17 · 437 阅读 · 0 评论