C++
文章平均质量分 83
chidy
这个作者很懒,什么都没留下…
展开
-
(转)VC中如何使编辑框(EDIT控件)只能复制和接受光标而不能接受输入
1.在对话框工程中添加新类CNewEdit继承自CEdit;2.为CEdit添加WM_CHAR消息响应OnChar,重写OnChar函数如下:void CNewEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or转载 2012-02-26 14:34:11 · 1927 阅读 · 0 评论 -
VC++中一些常见问题的解决方法
(转)VC++中一些常见问题的解决方法(1)为什么某个类突然在工作区间里面突然看不见了?只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLASSVIEW中显示了(2)在基于对话框的程序中,一按回车键,对话框就没了。把确定按纽的缺省属性前面的对勾去掉,重载OnOk()函数,在OnOk()函数里注释掉调用基类的OnOk()函数那转载 2013-02-26 13:36:13 · 1524 阅读 · 0 评论 -
函数Debug下可以编译成功,而Release下不能编译成功
若是出现函数在Debug下可以编译成功,而Release下不能编译成功,则可查询一下函数的实现是否放在+#ifdef _DEBUG...#endif之下了原创 2013-02-26 11:42:16 · 1131 阅读 · 0 评论 -
Link2005错误解决方法
Link2005错误解决方法nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cde原创 2013-03-11 13:37:02 · 1101 阅读 · 0 评论 -
MFC判断文件夹路径是否存在以及创建文件夹的方法
PathIsDirectory() 检测路径是否存在CreateDirectioy() 创建文件夹两个函数需要使用shlwapi.h头文件以及添加shlwapi.lib或shlwapi.dll 库函数原创 2013-02-28 19:45:04 · 17726 阅读 · 2 评论 -
基于VC++6.0的DLL开发
基于VC++6.0的DLL开发(转)最近在开发一个基于网络的模块,目标是将这个在CAsyncSocket基础上开发的扩展类,进行有效的封装,向应用程序提供模块化的功能,之间查询了很多资料。了解DLL的开发。下面是一篇我觉得不错的文章,我引用在这里,是向大家起一个抛砖引玉的作用。总体感觉这篇文章对DLL的整个开发过程都作了比较通俗易懂的描述。一、前言 自从微转载 2013-02-28 19:46:16 · 481 阅读 · 0 评论 -
MFC单文档和多文档应用程序启动时最小化到托盘
MFC单文档和多文档应用程序启动时最小化到托盘(转)托盘程序相关数据结构和函数在《MFC基于Dialog的窗口程序启动时最小化到托盘》中已提到,不在累述,下面介绍具体实现:1、在CMainFrame类中加入成员变量:NOTIFYICONDATA m_tnid;2、在MainFrame.h文件中定义宏#define WM_SHOWTASK WM_USER+1;3、在其CMainFra转载 2013-02-28 20:12:22 · 1686 阅读 · 0 评论 -
error C2653: 'list<class CSomething*,class std::allocator<class CSomething*> >'...解决方法
error C2653: 'listCSomething*> >' : is not a class or namespace name原因为未引用命名空间,list的命名空间为std加入:using namespace std;原创 2013-03-02 18:43:13 · 606 阅读 · 0 评论 -
#include<iostream.h>与 #include<iostream>
#include 是个包含命令,就是把iostream.h这个文件里的内容复制到这个地方ostream.h是input output stream的简写,意思为标准的输入输出流头文件。它包含: (1)cin>>"要输入的内容" (2)cout<<"要输出的内容" 这两个输入输出的方法需要#include来声明头文件。 iostream.h与iostream是不同的。 #in原创 2013-03-13 00:05:03 · 6161 阅读 · 0 评论 -
VC中的CEDIT class 自动滚动到最后一行
VC中的CEDIT class 自动滚动到最后一行 1. pEdit为CEdit控件变量指针 int nLen=pEdit->GetWindowTextLength();//获取控件中内容的大小 pEdit->SetSel (nLen, nLen);//将光标位置跳刀最后一个字符pEdit->ReplaceSel((LPWST原创 2013-04-01 13:14:33 · 3409 阅读 · 0 评论 -
ConvertBSTRToString()使用出现内存泄漏
以下两种方式实现功能一样,获取数据库表的名称,放到str中,需要将BTRS转换为String类型,但后一种方式会出现内存泄漏的问题////////////////////////////1/////////////////////////////////_variant_t temvr;CString str; temvr = pRs->GetCollect("运行机车号"原创 2013-04-28 15:29:56 · 1968 阅读 · 0 评论 -
C++ ofstream和ifstream详细用法
C++ ofstream和ifstream详细用法ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流转载 2013-06-16 16:44:10 · 407 阅读 · 0 评论 -
Select ()使用说明及教程
最近项目开发中使用到TCP通信,虽然以前编过简单的TCP的Server和Client程序,但是对于如果并发处理多个客户端没有多想过,上网查了一下,使用select()来实现比较方便,但是没找到完整的例子,下面的例子比较完整,所以保存供以后忘了在看看。///////////////////////////////////////////////////////////////////////原创 2013-07-08 22:39:23 · 1301 阅读 · 0 评论 -
fstream用法(转)
fstream用法(转)在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般转载 2013-07-10 21:40:41 · 438 阅读 · 0 评论 -
在C++中实现四种进程或线程同步互斥的控制
在使用MFC的Win32程序中,如果使用到多线程的工作方式时,需要注意不同线程中使用同一资源的情况,如果忽略不管,极易造成程序出现莫名其秒的崩溃问题,之前曾在编程过程中遇到过使用list模板来对数据进行管理,但是在添加存储或是删除时就会出现迭代器失效的问题,导致程序崩溃。我想也会导致其他方面的错误,如果程序中使用到多线程工作方式,那么通过临界区保护或建立互斥量等方式进行资源保护是十分必要的。信号量转载 2013-06-26 14:48:37 · 626 阅读 · 0 评论 -
C++获取文件大小常用技巧分享
C++获取文件大小常用技巧原链接:http://developer.51cto.com/art/201002/182227.htm C++编程语言在程序开发应用中能够帮助我们轻松的完成许多功能需求。比如今天为大家介绍的C++获取文件大小的方法,就可以以多种方式轻松的实现。现在将会实现方法呈现给大家,以便大家参考。C++获取文件大小代码示例:#inclu转载 2013-06-26 14:19:12 · 584 阅读 · 0 评论 -
_beginthreadex : undeclared identifier解决办法
我在一个控制台程序中使用了_beginthreadex()函数,并包含了PROCESS.h头文件 但总是编译错误:告诉我函数没有定义? #include "process.h"............ Compiling... e:/_te$t/test/main.cpp(2299) : error C2065: '_beginthreadex' :转载 2013-06-30 10:03:44 · 1171 阅读 · 0 评论 -
unresolved external symbol__imp__WSAStartup@8等错误原因
.error LNK2001: unresolved external [email protected]下的错误信息:error LNK2001:unresolved external symbol __imp__socket@12error LNK2001:unresolved external symbol __imp__WSAStartup转载 2013-02-26 11:01:17 · 478 阅读 · 0 评论 -
链接错误小结(转)
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:unresolved转载 2012-12-25 09:07:01 · 462 阅读 · 0 评论 -
使用CreateFile()打开COM10及以上串行口
转载原文:http://blog.sina.com.cn/s/blog_470eccc60100cwzb.html使用CreateFile()打开COM10及以上串行口 程序调试时发现,使用CreateFile()打开COM4时正常,打开COM10时却总是失败。这两个端口均为虚拟COM口,通过蓝牙仿真串口完成数据收发,除了命名不同外,本质上并无任何不同。而M转载 2012-11-09 15:30:49 · 845 阅读 · 0 评论 -
C++ volatile, explicite, mutable(转)
1. volatile有些变量是用volatile关键字声明的。当两个线程都要用到某一个变量且该变量的值会被改变时,应该用volatile声明,该关键字的作用是防止优化编译器把变量从内存装入CPU寄存器中。如果变量被装入寄存器,那么两个线程有可能一个使用内存中的变量,一个使用寄存器中的变量,这会造成程序的错误执行。 volatile的意思是让编译器每次操作该变量时一定要从内存中真正转载 2012-02-26 11:18:07 · 583 阅读 · 0 评论 -
给CTreeCtrl\CListCtrl\CListBox的Item添加tooltip
1. 从CTreeCtrl派生自己的类,如CMyTreeCtrl。打开Tooltip功能:view plaincopy to clipboardprint?void CMyTreeCtrl::PreSubclassWindow() { // TODO: Add your specialized code here and/or call the base class转载 2012-02-28 18:33:09 · 3980 阅读 · 0 评论 -
socket error总结(转)
socket error总结(转)Comes from:http://hi.baidu.com/oxbat/blog/item/fbd4de95e4772548d0135e7a.htmlSocket error 0 - Directly send error Socket error 10004 - Interrupted function call S转载 2012-03-02 18:49:52 · 11129 阅读 · 0 评论 -
C++中ListView控件的用法
C++中ListView控件的用法 转载▼以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标转载 2012-03-05 14:48:04 · 15625 阅读 · 1 评论 -
ListCtrl用法
ListCtrl用法1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“转载 2012-03-07 10:18:28 · 1191 阅读 · 0 评论 -
VC学习/MFC学习/控件使用大全
VC学习/MFC学习/控件使用大全http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=18262&extra=&page=1http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=18262&extra=&page=2http://dev.10086.cn/cmdn/bbs/viewthread.p转载 2012-03-14 21:50:50 · 550 阅读 · 0 评论 -
Tree Ctrl使用
Tree Ctrl/////////////////////编辑节点显示字符的原理//////////////////////树形控件TreeCtrl和下节要讲的列表控件 ListCtrl在系统中大量被使用,例如Windows资源管理器就是一个典型的例子。树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。转载 2012-03-14 21:54:23 · 473 阅读 · 0 评论 -
VC serialPort类加上关闭功能
VC serialPort类加上关闭功能(转帖)CSerialPort是一个很好的串口通讯类,但它没有关闭串口的方法,如果对这个类的实现原理不了解,自行编写串口关闭方法可能会带来如下问题: 1、用closehandle方法关闭串口:由于调用类方法StartMonitoring后会生成一个串口通信线程,这个线程中要不停地访问串口,这种方法会带来明显的错误。 2、先用StopMo转载 2012-05-16 18:52:52 · 1179 阅读 · 1 评论 -
窗口关闭过程(转)
VC++窗口关闭全过程(转) 窗口关闭过程——OnOK(),OnCancel(),OnClose(),EndDialog(),DestroyWindow(),OnDestroy(),OnNcDestroy() 一、对于非模态窗口,必须重载OnCancel函数,在函数中调用DestroyWindows()转载 2012-05-22 01:35:29 · 726 阅读 · 0 评论 -
CSerialPort
CSerialPort(转帖) 在程序中如果要用到多个串口,而且还要做很多复杂的处理,那么最好不用MSComm通讯控件,如果这时你还不愿意自己编写底层,就用这个类:CserialPort类。作者是 Remon Spekreijse ,可在http://www.codeguru.com找到作者的基于对话框的可以同时检测4个串口的通信例子.本文介绍基于文档的程序中的用法:(实转载 2012-05-24 20:25:04 · 767 阅读 · 0 评论 -
CToolBar中显示256以上的位图(如24位)的方法和相关经验
if (!m_wndMyToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||!m_wndMyToolBar.LoadToolBar(IDR_MYTOOLBAR)){原创 2012-08-12 03:39:24 · 2630 阅读 · 1 评论 -
VC:控制工具条的停靠位置
VC:控制工具条的停靠位置一、标准工具条停靠位置的控制 VC5 应用程序向导生成的框架代码中,都具有普通工具条的控制方法。正常情况下工具条类CToolBar是控制条类CControlBar 的派生类,其显示的初始停靠位置是通过调用继承的函数CControlBar::EnableDocking(DWORD dwStyle)来确定的,其参数dwStyle用来指定停靠具体转载 2012-08-14 13:26:29 · 754 阅读 · 0 评论 -
在VC中使用GDIPlus
在VC中使用GDIPlus首先,在StdAfx.h中静态调用diplus.lib,即由编译系统完成对DLL的加载,应用程序结束时卸载DLL的编码。如下:#ifndef ULONG_PTR#define ULONG_PTR unsigned long*#include "GdiPlus.h"using namespace Gdiplus;#pragma c转载 2012-08-15 21:44:02 · 881 阅读 · 0 评论 -
数据库操作小结
1.ADO之 "IDispatch error #3092"错误在采用ADO访问ACCESS数据库的时候,会出现IDispatch error #3092错误可能原因的访问执行的SQL语句错误,可以检查一下SQL语句。2.创建Access数据库文件和创建表创建Access数据库文件有两种方法,一种是用CDaoDatabase类,用法如下,但是只能创建Microsof原创 2012-09-21 02:44:49 · 2146 阅读 · 1 评论 -
_stdcall的说明及error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' t
(转)用VC创建新线程易出的问题error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'解决方案:(1)如果线程要执行的是类的成员函数,则必须用static声明为静态函数原创 2012-10-21 16:09:45 · 5392 阅读 · 0 评论 -
在不使用if,while,do...while,for,switch,?:等操作,实现函数void printLess(int k),返回小于k的所有整数
这个题为2014网易C++笔试题,考得很烂,这题现场没做出来,只想到是用递归,但是怎么递归就不知道了。网上搜了一下,方法有两种,一种是用类的方式实现,一种是用&& 或||运算符来实现。类实现方式:通过类的构造函数来实现小于k的整数输出class test{ public: static int k; test(){ cout}int test::k=1;原创 2013-10-11 23:40:56 · 876 阅读 · 0 评论