
VC++
我来自江南
这个作者很懒,什么都没留下…
展开
-
itk的编译问题
用的itk4.2.0,windows10+vs2008(或者vs2010也可)+cMAKE2.8.3:1. CMAKE不要包括example和testing,否则用vs编译过程中很容易出错或者宕机。2. 用vs编译生成基本库3. 用cmake去全部生成examples和testing的例子,generate之后vs不要重新编译基本库了。4. 这时候要使用什么例子就打开相应的生成的p原创 2015-09-22 15:45:44 · 953 阅读 · 0 评论 -
关于内存泄露的几点问题
出现“触发xx断点……”或者定位到代码“return HeapAlloc(_crtheap, 0, size ? size : 1);”错误出现这种问题的原因: (1).在一个被调函数里面,指针变量使用了new分配堆空间,但函数结束返回的时候没有释放。在主函数里头接着又使用new给新的指针变量分配空间,这时候就会出错。原创 2012-08-09 13:49:26 · 2454 阅读 · 0 评论 -
VC 移动,复制,删除文件
原文出处:http://lxxavr.blog.163.com/blog/static/140299147201191275129174///删除文件或者文件夹bool DeleteFile(char * lpszPath){SHFILEOPSTRUCT FileOp={0};FileOp.fFlags = FOF_ALLOWUNDO | //允许放回回收站转载 2012-07-22 21:15:41 · 919 阅读 · 0 评论 -
关于mfc界面风格 以及 文本控件字符大小的问题
1.界面风格变化原因: 以前一直纳闷,为什么对话框等资源在编辑模式下界面很好看,而在运行的时候就变成比较老旧的界面,边界凹凸明显,很不好看。这其中的原因就是,如果工程属性中的Character set设置为Use Multi-Byte Character Set,则运行时界面是老旧风格;如果设置为Use Unicode Character Set,则是好看的界面风格. 2原创 2012-08-04 21:23:28 · 1584 阅读 · 0 评论 -
mfc在主框架CmainFrame中相应对话框上面控件的事件
关于mfc的消息想要机制就不在这里照搬照抄了,因为那些东西在编程过程遇到急需要解决问题的人来说是很繁杂的。如有必要请绕道看其他的论述。 首先单文档SDI有个主框架Cmainframe,再建一个对话框类CMyDlg的对象myDlg,上面有个Cbutton按钮,添加相应函数MyBnClick(),此函数放Cmainframe中,运行程序点击按钮是不会得到响应的,因为对话框将主框架的消息给覆盖了原创 2011-12-15 19:06:50 · 3475 阅读 · 2 评论 -
VC++打造漂亮的工具条 .
/-------------------------------看正文前注意:在vs2008要修改下CTrueColorToolBar中的OnToolbarDropDown(NMTOOLBAR* pnmh, LRESULT* plRes);函数具体方法参考下面:今天碰到一个问题static_cast” : 无法从“void (__thiscall CMainFram转载 2012-06-13 19:44:26 · 6915 阅读 · 0 评论 -
在unicode下获取文件路径
CString cdirectory ; GetCurrentDirectory(MAX_PATH,cdirectory.GetBuffer(MAX_PATH)); m_curFilePath = (char*)cdirectory.GetBuffer(); cdirectory.ReleaseBuffer();原创 2012-05-23 15:16:29 · 2192 阅读 · 0 评论 -
vb窗体程序调用vc ATl写的com组建一个小发现
假设前面的组建都已生成注册成功。vb程序添加好vc的com组建的引用之后,这是第一次调用前引用路径设置,编译运行成功。第二次再查看引用的路径,就会变为vb当前路径中的obj文件夹下的com组建,而不是原来第一次添加的路径,这点在vs2010里头第一次发现,不知道旧版本的vs是不是也这样。关键的一点就是为什么路径修改后还能正确找到com组建,即使把vb目录相应的com删掉,下一次编译同样运行成功原创 2012-06-12 22:27:25 · 2303 阅读 · 2 评论 -
windows socket 通信(仅限局域网)
windows socket 通信(仅限局域网)服务器端#include #include using namespace std;#pragma comment(lib,"ws2_32.lib")typedef struct _SockInfo{ SOCKET sock; int id; //标记第几个客户连接}SockInfo;原创 2012-06-07 19:07:49 · 2741 阅读 · 0 评论 -
体会setCapture和releaseCapture判断鼠标是否在某一区域
首先假设有一个对话框,上面嵌套了一个view视图,如下所示:好。我要实现一个简单的功能,当鼠标在view窗口内移动时处理view本身的OnMouseMove消息,但是如果鼠标离开view区域,就弹出一个MessageBox提示鼠标即将离开view区域。先直接看如下实现代码,再说明setCapture和releaseCapture在其中的作用:oid CImageView::OnMous原创 2012-07-30 10:09:00 · 3770 阅读 · 0 评论 -
用一个view创建的多个静态分割窗体
m_wndSplitternd.CreateView(0,0,RUNTIME_CLASS(CLiverDemoView),CSize(width,height),pContext); m_wndSplitternd.CreateView(0,1,RUNTIME_CLASS(CLiverDemoView),CSize(width,height),pContext); m_wndSplitt原创 2012-08-20 11:23:23 · 972 阅读 · 0 评论 -
关于dicom参数信息和数据读写的理解
1. 数据位存储(DCM_BitsStored)、数据位分配(DCM_BitsAllocated)、数据符号类型(DCM_PixelRepresentation)、灰度偏移(DCM_RescaleIntercept) 和数据值(DCM_PixelData)本身的关系: (1) DCM_BitsAllocated是给每个像素分配的字节数对应的位数,如单字节就是8,两字节就是16......原创 2015-07-23 11:12:52 · 13178 阅读 · 3 评论 -
oracle11g(x64) + vsC++2008(x86)
1.按照官方说明装好oracle和vs20082.oracle原创 2014-11-18 17:42:59 · 1184 阅读 · 0 评论 -
CToolBarCtrl中的摁钮状态设置
用CToolBarCtrl创建工具条的时候,TBSTYLE_CHECKGROUP原创 2014-08-16 11:00:13 · 1089 阅读 · 0 评论 -
在本人的虚拟手术项目中,实现了利用CSplitterWnd对tabView中的任意子view进行窗口切割,效果跟用CSplitterWnd对CMainFrame完全一致。 (注:本人纯粹为了记录技术,
在本人的虚拟手术项目中,实现了利用CSplitterWnd对tabView中的任意子view进行窗口切割,效果跟用CSplitterWnd对CMainFrame完全一致。(注:本人纯粹为了记录技术,因时间紧就不在这里赘述,需要的contact me if I have time:qq-644534729)试了下,对对话框也可实现同样的切割,但是不同的一点就是重置splitter窗口原创 2014-01-02 13:30:13 · 902 阅读 · 0 评论 -
vc++2008中如何断点调试异常数据-1.#IND
比如我声明定义了一个double变量double d = 1.0;但是后续程序对d进行了误操作导致d是无效数字。这时候可以使用下面的代码加上断点来定位出错位置if (_isnan(d) || _isnan(d) ||_isnan(d)){cout}原创 2013-03-19 14:11:22 · 1401 阅读 · 0 评论 -
请问我这段多线程代码为什么会死机?
http://vc.wgets.com/thread/407869我在写个多线程的代码,建立一个对话框,放置“开始”“通知”“进度条”控件。我的目的是按“开始”执行“ThreadFunc”函数,按“停止”中止执行。代码如下:C/C++ codevoid CSolverDlg::ForceQuit(){ SetEvent(hExit);};BOOL转载 2013-01-27 19:37:04 · 645 阅读 · 0 评论 -
如果重写对话框的OnInitDialog()函数,如何保证DoDataExchange(CDataExchange* pDX)依然有效?
必须在重写的函数里面开头假设父类CDialog的OnInitDialog()初始化:BOOL CTopControlDlg::OnInitDialog(){ CDialog::OnInitDialog(); //后面添加你的代码 return TRUE;}原创 2013-01-25 22:50:35 · 1157 阅读 · 0 评论 -
一个不断调用函数的趣事
一个类所有的函数返回值都设置成返回本对象地址,然后所有的函数就可连续引用 m_frmWin.SetXPGroupStyle(CXPGroupBox::XPGB_WINDOW) .SetBackgroundColor(RGB(255, 0, 0), RGB(0, 0, 0)) .SetCatptionTextColor(RGB(0,255,0)) .SetFontSize(2转载 2012-08-26 17:47:48 · 1074 阅读 · 0 评论 -
关于mfc CSplitterWnd的几点理解
1.首先是CsplitterWnd的关键的几个参数 // implementation attributes which control layout of the splitter int m_cxSplitter, m_cySplitter; // size of splitter bar int m_cxBorderShare, m_cyBorderShare;原创 2012-08-20 15:41:30 · 4077 阅读 · 1 评论 -
工程包含不同路径头文件注意点
如果在一个工程里包含的头文件跟当前工程所在路径不一致,比如有个控制台工程,三个文件:main.cpp //主函数a.h //一个加法函数int addnum(int a,int b,int &c);的声明a.cpp //加法函数addnum的实现现在假设main.cpp跟工程文件同目录,而吧a.h和a.cpp文件放在跟工程文件原创 2012-03-12 21:53:26 · 1798 阅读 · 0 评论 -
malloc动态分配内存,超字节赋值没有出错
1. 看段代码: char *a=(char*)malloc(3); a[0]='1'; a[1]='2'; a[2]='3'; a[3]='4'; //这里开始超字节赋值 a[4]='5'; a[5]='\0'; cout a=(char*)realloc(a,5); //对a重新分配,变为5个字节,原先原创 2012-02-26 15:01:30 · 1622 阅读 · 0 评论 -
vc编程遇到的各种问题和解决方法
1. 重新编译生成无法报错“无法删除XX文件”,这些文件一般都是lib或者dll,出错原因之一就是win7系统的文件系统权限问题,重新以管理员方式运行编译平台就可以了。 2.像fatal error LNK1120: 1 unresolved externals之类的说XX函数的引用错误 在代码文件开头处使用#pragma comment(lib,"xx.lib")把相应的库默认导原创 2012-02-17 21:12:42 · 632 阅读 · 0 评论 -
VC2008 ADO 连接SQL Server 2008 (ODBC)
以下代码部分为转载内容。在使用以下代码之前千万记得要先注册好自己连接的数据库,方法是进入“控制面板”,注册好OBDC数据源,具体方法网上查 http://news.ccidnet.com/art/32849/20100608/2081137_1.htmlVS2008中首先新建个基于Dialog的MFC应用程序,然后经过wizard生成的stdafx.h文件的末尾添加上#import "转载 2011-12-12 16:42:10 · 5059 阅读 · 1 评论 -
串行通信的基本原理及用MFC实现串口通信编程
http://www.newasp.cn/tech/program/20140.html 在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。计算机和单片机(如MCS-51)都具有串行通信口,可以设计相应的串口通信程序,完成二者之间的数据通信任务。 实际工作中利用串口完成通信任务的时候非常之多。已有一些文章介绍串口编程的文章在计算机杂志上发表。但总的感觉转载 2011-12-11 22:48:48 · 979 阅读 · 0 评论 -
vc定义数组在matlab矩阵存储方式
vc定义一下一个数组并生成matlab矩阵static double real_data[]={1.1, 2.56, 3, 4, 5, 6, 7, 8, 9};mat0=mxCreateDoubleMatrix(3,3,mxREAL);memcpy((void*)mxGetPr(mat0),(void*)real_data,sizeof(real_data)); 那么所得矩阵是按行原创 2011-12-17 15:10:11 · 1249 阅读 · 0 评论 -
用VS2005(2008也同样)调用MATLAB2010的m文件函数
关于vs2008(2005)与matlab的其他的混合编程请看网摘,此处仅仅转载vc++怎么调用matlab自定义函数(即自己写的m文件函数) http://blog.sina.com.cn/s/blog_5fd4166b0100pmk9.html 一定要按如下配置好,特别注意的是第一步。否则不能初始化程序,而且所有矩阵相关操作不能进行内存分配 1. matlab:mex -s转载 2011-12-18 15:15:51 · 3110 阅读 · 1 评论 -
mfc改变鼠标形状
http://hi.baidu.com/harbinxxh/blog/item/84248d95284548136e068c08.html Windows程序和Doc程序很大的不同 , 就在于Windows有一个亮丽的图形界面和简捷的操作方式 , 而鼠标就是Windows程序中最重要的一个操作手段 . 有朋友向我咨询如何修改鼠标形状 , 这本来是一个简单的问题 ,但是当朋友向转载 2011-12-06 22:03:56 · 17602 阅读 · 4 评论 -
略谈如何在对话框创建视图类画图
略谈如何在对话框创建视图类画图http://blog.youkuaiyun.com/clever101/archive/2009/01/14/3779089.aspx 作者:朱金灿来源:blog.youkuaiyun.com/clever101 在对话框上画图可以通过添转载 2011-10-06 16:10:42 · 4411 阅读 · 1 评论 -
mfc宽字节widechar与多字节multiChar相互转换
string WideCharToMultiChar( wstring in_str){ string return_str; int len=WideCharToMultiByte(CP_ACP,0,in_str.c_str(),in_str.size(),NULL原创 2011-10-16 11:55:15 · 1830 阅读 · 0 评论 -
VC中的界面美化
本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础: 1.大致了解MFC框架的基本运作原理; 2.熟悉Windows消息机制,熟悉MFC的消息映射和反射机制; 3.熟悉OOP理论和技术; 本文根据笔者多年的开发经验,并结合简单的例转载 2011-09-26 13:47:27 · 2650 阅读 · 0 评论 -
VC常用小知识
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.转载 2011-09-21 01:44:33 · 6777 阅读 · 0 评论 -
使用指针类型参数和使用指针引用类型参数在函数内部用new给参数分配空间的不同结果
函数的参数a如果是指针类型(quote1函数所示),用在函数内用new为a分配空间,那么在主函数或其他主调函数里面传进来的参数不会受到影响,也就是不会为传进来的指针参数分配空间,如果要为传进来的指针参数分配空间,应当使用指针引用类型参数(quote2函数所示)//参数a为指针原创 2011-09-18 20:20:14 · 1618 阅读 · 0 评论 -
CListCtrl使用技巧 (包括视图类(CListView)实现的CListCtrl同样适用,使用GetListCtrl()获取)
http://www.cnblogs.com/cy163/archive/2006/10/15/529790.html 以下未经说明,listctrl默认view 风格为report 1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST转载 2011-12-12 20:32:42 · 4141 阅读 · 0 评论 -
使用_RecordsetPtr读表数据时切记要加上Try..catch捕捉错误
HRESULT hr2=m_pRecorset.CreateInstance(__uuidof( Recordset )); if (SUCCEEDED(hr2)) { AfxMessageBox("connect successfully!"); try { m_pRecorset->Open("SELECT * from user.原创 2011-12-12 20:04:12 · 1649 阅读 · 0 评论 -
在非unicode下取得文件路径序列
inline void getDirectoryCur(char* &curDirectory){ LPSTR cdirectory=new CHAR[MAX_PATH]; GetCurrentDirectory(MAX_PATH,cdirectory); curDirectory = (char*)cdirectory;}原创 2012-02-26 13:09:34 · 687 阅读 · 0 评论 -
安装好cuda相关工具后发现原来基于mfc平台的opengl程序出现闪烁,最终解决
修改前,会闪烁,一开始以为是窗体view的OnEraseBkgnd函数无法禁止造成的,其实是像素格式的参数设置问题修改前,会闪烁的设置:// static PIXELFORMATDESCRIPTOR pfd={// sizeof(PIXELFORMATDESCRIPTOR),// 1,// PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL原创 2012-02-17 18:46:31 · 1371 阅读 · 1 评论 -
C/C++中日期和时间
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概转载 2012-02-10 13:44:13 · 516 阅读 · 0 评论 -
VS2010中安装配置Parallel Nsight 2.0
http://cuda.it168.com/a2011/0926/1251/000001251475.shtml 【IT168 技术】Nvidia公司推出了 Parallel Nsight 2.0 RC http://parallelnsight.nvidia.com/ 完美支持VS2010和VS2008SP1,支持CUDA 4.0。 让我们省去了配置环境参数的烦转载 2012-02-11 10:34:11 · 1509 阅读 · 0 评论 -
写常规dll之悟
为了写一个读取文件内容的dll,通过将文件路径传给dll函数进行调用。dll的编写实现如下:1.dll生成两个文件,头文件dataIO.h和实现文件dataIO.cpp,其中dataIO.h如下#include using namespace std;struct _declspec(dllexport) SMStruct{ //此导出结构体用于存放文件每一行的信息原创 2012-02-06 21:54:17 · 654 阅读 · 0 评论