
VC
jonathandj
喜欢编程的乐趣,平时喜欢足球,旅游,聊天。
展开
-
fstream的简单使用
当文件过大时,使用C++ Builder的FileOpen()打开文件总是返回-1,迫于无奈和以后可以移植到VS2005中,打算用fstream来读取。在家里测试的好好的,直接用fstream的Open()打开文件,然后在用>>读取内容,就可以,可回到公司就不行了。原来的是这样的:fstream streamFile;streamFile.open(strFileName,ios::in原创 2008-10-21 17:35:00 · 4809 阅读 · 1 评论 -
显示从另一类中获取到位图句柄
显示的时候是比较简单的,只需创建DC,选入位图,Blt位图,选出位图即可,代码如下: 其中hDC是要目的DC,已知量, hBmp也是已知量,是位图句柄。 HDC hCompatibleDC=::CreateCompatibleDC(hDC); HBITMAP hBmpOld=(HBITMAP)::SelectObject( hCompati原创 2009-07-30 14:50:00 · 629 阅读 · 0 评论 -
VS2005找不到解决方案
今天重装了2005后,发现新建的解决方案,在新建一个项目后就消失了,再想添加项目就不容易,解决方法是:工具->选项->项目解决方案->选中总是显示解决方案原创 2009-06-07 10:25:00 · 699 阅读 · 0 评论 -
API改变文字的颜色
有时候就会很糊涂,今天在需要在程序中改变文字的颜色,竟然去改变HPEN的颜色。应该是调用API函数SetTextColor(HDC,COLORREF),然后调用TextOut()才可以改变文字的颜色。原创 2009-06-03 16:57:00 · 750 阅读 · 0 评论 -
VS编译的一些问题
昨天晚上为了赶项目,调程序又调到了4点,哎做程序员真的是太命苦了,今天赶紧总结一下,免得以后同样的问题又搞半天。问题的关键还是自己的经验不足,对一些知识的理解没有很到位,导致老是在瞎折腾。1.遇到找不到头文件之类的问题,肯定是因为配置里面,C++-->附加包含目录->里面包含的路径里,找不到需要的文件。首先利用Everything软件搜出该文件,然后直接将其添加即可。2.从项目中删除了原创 2009-06-16 16:14:00 · 653 阅读 · 0 评论 -
固定对话框大小
应该将创建风格的WS_THICKFRAME去掉,因为MSDN的解释如下: Creates a window with a thick frame that can be used to size the window.,可见就是用来的Resize对话框的原创 2009-08-23 18:17:00 · 1072 阅读 · 0 评论 -
MFC对话框创建和销毁窗口时,函数的调用顺序
以下是一点资料供参考,非模态对话框的销毁顺序:MFC应用程序中处理消息的顺序1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用, 然后调用WindowProc(转载 2009-06-29 13:51:00 · 10182 阅读 · 2 评论 -
CSV文件导入到SQL Server 2005数据库中
首先用查询语句,从tblTask表中查询出所有的数据,然后将其保存为csv格式。 在SQL语句窗口,输入如下内容:USE Keii BULK INSERT dbo.tblTask FROM d:/tblTask.csv WITH (FIELDTERMINATOR = ,, ROWTERMINATOR =原创 2009-09-27 17:41:00 · 4095 阅读 · 0 评论 -
SHFileOperation
SHFILEOPSTRUCT fileStruct; fileStruct.hwnd=NULL; fileStruct.pFrom=_T("D://SGCC20090630PM//20090630_123422//FaultImage//IR//5482_48_*.IMA/0"); fileStruct.wFunc=FO_DELETE; fileStruct.pTo=NULL; fileStru原创 2009-11-12 13:33:00 · 554 阅读 · 0 评论 -
使SoftUI的对话框既可以模态也可以非模态显示
在利用SoftUI作为皮肤控件时,若想将对话框设置为可以模态也可以非模态,则可利用一下方法。 利用模态对话框显示时会调用OnInitialDialog(),在对话框类中增加一变量bool m_bIsDoModal,在OnInitialDialog()中,设置其为true,然后: OnDestroy(){return m_bIsDoModal ? (UIHostDlg::原创 2009-11-12 19:50:00 · 872 阅读 · 0 评论 -
附加数据库时,要在Windows身份验证模式下
今天要被SQL Server 2005搞死了,先是无缘无故的连接不上,到网上找半天也没有解决方法,最后只得重装系统,因为是用Ghost装的,在装上XP后IIS装不上,出现各种各样的错误。后来有重装了一次,用电脑城纯净版。装的挺快的,就是装完之后“添加Windows组建”里又找不到IIS,还好最后到网上找到了解决方法。然后又去装数据库,但是添加数据后,又出现数据库是只读的,啥都做不了。到网上找又半原创 2009-12-03 23:17:00 · 942 阅读 · 0 评论 -
设置运行时仅生成启动项目和依赖项
昨天重装了VS2005,发现每次在运行时都直接启动了原先已经生成好的exe文件,而刚刚修改的并没有生成,这样对调试程序很不好。后来找到了“工具”->“选项”->项目和解决方案,发现有个“生成并运行”选项,看到里面有“在运行时仅生成启动项目和依赖项”,还有“运行时,当项目过期时”的组合框,改变这两个就可以实现我的功能。原创 2009-12-06 00:05:00 · 1856 阅读 · 0 评论 -
SHFileOperation CString到LPCTSTR的转换
上星期一一天都在整这个小问题,刚开始发现删除的文件怎么没有删除掉,还以为是删除的文件夹路径搞错了,查了半天确实是有一些地方是错的。但是对的也没有删掉。所以就赶紧看SHFileOperation的操作,结果发现pFrom里面已经赋值了,应该是对的。调试也发现里面是对的。但是还是删不掉。最后发现最后两位不是/0/0结尾的。正确的使用方式如下: SHFILEOPSTRUCT fileStruct;原创 2009-12-14 09:40:00 · 1005 阅读 · 0 评论 -
GetDIBits() 获取填充BITMAPINFO结果
在已经知道了HBITMAP的前提下,若要获取到该位图句柄对应的位图信息,则应该按如下格式获取:BITMAPINFO bmpinfo;ZeroMemory(&bmpinfo,sizeof(BITMAPINFO));// 下面这句话是必须的,否则将得不到任何信息bmpinfo.bmiHeader.biSize=sizeof(BITMAPINFO);:GetDIBits(hDC,hB原创 2009-07-30 13:30:00 · 2107 阅读 · 0 评论 -
创建非模态对话框释放内存的问题
若给非模态对话框设置了父窗口,则应该在父窗口中销毁对话框窗口,释放对话框的C++指针。 m_pDlg:应用程序中对话框的指针,初始值为NULL; CDlg是对话框类名称; m_listWnd:应用程序中存储CDlg的指针 当应用程序打开非模态对话框时,因要保存其类指针,所以必须在对话框被销毁时,释放自己的资源。这里分两种情况:1.对于只打原创 2009-05-09 20:27:00 · 2874 阅读 · 2 评论 -
手动配置Debug版本
针对的是MFC程序:1.常规下-》MFC的使用=在共享DLL使用MFC2。C/C++-》常规-》附加包含目录=选择需要包含进工程的源代码文件的目录; 调试信息格式=用于“编辑并继续”的程序数据库(/ZI); 优化-》优化=禁用/od 代码生成-》启用最小重新生原创 2009-04-26 00:58:00 · 844 阅读 · 0 评论 -
VS2005下写DLL应该注意的问题
1:字符集:若写DLL的编译器用Unicode字符集,则使用该DLL的编译器也应该设置为Unicode字符集,否则会出现链接错误;2:应该使用静态链接的方式,以防止在裸机上运行不成功。3:若导出的是类,则向外公布的类的头文件必须和原始的一样,无论私有还是共有的,否则会出现错误。原创 2008-10-13 17:47:00 · 689 阅读 · 0 评论 -
数据格式介绍和转换
一、 BSTR、LPSTR和LPWSTR 在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTR和LPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode和多字节字符集(MBCS)的支持。那么什么是BSTR、LPSTR以及LPWSTR呢? BSTR(Basi转载 2009-01-10 17:29:00 · 867 阅读 · 0 评论 -
socket函数简介
什么是 socket? 他是使用 Unix 文件描述符 (file descriptor) 和其他程序通讯的方式。你也许听到一些 Unix 高手 (hacker) 这样说:“呀,Unix 中所有的东西就是文件!”那个家伙也许正在说到一个事实:Unix 程序在执行任何形式的 I/O 的时候,程序是在读或者写一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数。但是(注意后面的话)原创 2008-11-18 15:36:00 · 1675 阅读 · 0 评论 -
#pragma pack() sizeof()
#pragma pack() 和sizeof 本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。 1、 sizeof应用在结构上的情况,请看下面的结构: struct MyStruct{double dda1;char dda;int typ转载 2009-03-17 16:29:00 · 424 阅读 · 0 评论 -
静态变量
静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量, 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 对于自动变量,它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。由此看来, 一个变量可由static进转载 2009-03-17 17:02:00 · 425 阅读 · 0 评论 -
将普通对话框设置为CWnd*的子窗口
假设CWnd *pParentWnd为父窗口,CMyDialog *pDlg为自己创建的子窗口。 不需要为pParentWnd增加扩展风格WS_EX_MDICHILD,也不需要给pDlg增加普通风格WS_CHILD,只需动态创建非模态对话框,其中pDlg必须是全局的或是类的成员变量,否则建立后直接又delete掉了,还是不会显示出来。 pDlg=new CMyDialog();原创 2009-04-16 23:48:00 · 1369 阅读 · 0 评论 -
拷贝构造函数和赋值构造函数调用次序
class CPrintElement{public: KC_PRINT_TYPE kptType; /// bool bHasPrint; /// char chFontName[32];/// int iPointSize; /// void *ptr; /// char **chEleName;/// int iLeftSep; /// int原创 2009-04-08 10:37:00 · 590 阅读 · 0 评论 -
改变工程的输出文件路径和利用Copy命令Copy移动某个文件
在做DLL调试时,经常需要将DLL和Lib文件拷来拷去,容易出现错误,这时按照以下可解决问题:1.将DLL工程的输出文件该为测试工程的Debug或Release目录下; 举例:将DLL工程属性->链接器->输出文件该为测试工程的Debug目录,如../../TestPlay/Debug/Play.dll,则重新编译DLL后,DLL工程会将DLL和Lib文件均输出到测试工程的目录下;2.原创 2009-04-21 00:08:00 · 873 阅读 · 1 评论 -
加载光标
windows程序中,在窗口类的定义中,WNDCLASS结构体的一个成员 wndcls.hCursor 可以选择不同的光标,总结如下: 1.系统光标。 加载系统光标比较简单. wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);//加载标准的系统光标 注意第一个参数必须为NULL,第二个参数可以有不同的选择,更多的参数,查找msdn转载 2009-04-19 20:32:00 · 1813 阅读 · 1 评论 -
DLL中导出STL时,去掉警告的方法
若导出的是vector,则需要如下语句:EXPIMP_TEMPLATE template class KCDLL_API std::allocator;EXPIMP_TEMPLATE template class KCDLL_API std::vector; 若是list,则需要更多的语句,如下:EXPIMP_TEMPLATE template class KCDLL_API al原创 2009-04-21 00:21:00 · 737 阅读 · 0 评论 -
DLL中有STL时,应注意的问题。已解决,原来是DLL Hell问题
今天在DLL中增加了四个list,以便更好的完成封装。但是应用程序在调用DLL中的列表,往里增加元素时,老是出现错误,且通过size()函数获取其元素个数后,发现是18642323,一个比较奇怪的数字。无论如何调试都得不出结果。举例如下:m_pDLL:DLL中导出的类;m_pDLL->m_listAna:DLL中声明的列表;但是当利用m_pDLL->m_listAna->push_ba原创 2009-04-24 01:37:00 · 1238 阅读 · 1 评论 -
DLL Hell的解决方案
DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。 然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到的后转载 2009-04-24 15:02:00 · 5827 阅读 · 2 评论 -
不显示CFormView的滚动条
<br />原来是如此简单<br />在OnCreate重建完窗口之后,调用ShowScrollBar(SB_BOTH,FALSE);即可隐藏滚动条,前提是窗口的内容不能超过窗口区域的大小,否则还是会自动显示。原创 2010-09-15 15:49:00 · 1808 阅读 · 2 评论