现在位置: 首页 > 所有2012年07月发表的文章
2012-07-14 23:15 工业·编程 ⁄ 共 386字 暂无评论
之前没有使用过Rich Edit控件,以为它的使用方法和Edit Box一样。我建了一个单文档工程A,由A的一个菜单弹出对话框B,再由B的一个按钮弹出对话框C。 代码如下: void B::OnButton1() { CCdlg dlg; dlg.DoModal(); } 但是单击对话框B的按钮,对话框C一直没有弹出来.我很纳闷. 开始我以为是因为对话框C的控件太多了.对话框C有11个Edit控件,一个rich Edit控件,3个combo box,14个static text,3个按钮。为了证实我的想法,我又新建...
阅读全文
2012-07-14 23:13 工业·编程 ⁄ 共 3991字 评论 1 条
    在软件行业中,个人觉得每个Coder、Leader(那些当了Leader以后就不需要Code的除外)都应该除了具有良好的编码能力以外,最为主要的就是Debug的能力要坚实。千万不要告诉我Debug工作是Tester和QA的事情,首先你要认识到Debug的能力是一个并不简单的能力,能帮助你提高你的开发能力,加快开发速度,节约开发成本;其次你更应该知道,你所掌握的Debug的能力和技术并不可能抢去Tester或者QA的饭碗,他们做的工...
阅读全文
2012-07-14 23:12 工业·编程 ⁄ 共 587字 暂无评论
Windows API函数::GetModuleFileName的主要作用是获取当前应用程序的路径,其用法大致如下: extern CWinApp theApp; char szAppName[MAX_PATH]; :: GetModuleFileName(theApp.m_hinstance, szAppName, MAX_PATH); 这样字符数组szAppName就保存了当前应用程序的全路径。现在发现它的一个妙用是可以通过它获取应用程序的一些辅助文件路径,如参数文件所在的路径、临时文件所在路径,只要设置这些路径和应用程序路径存在相对关系...
阅读全文
2012-07-14 23:10 工业·编程 ⁄ 共 5408字 暂无评论
Windows环境下读写文件一般有下列有下面几种方式:C语言的文件操作函数,如fopen函数等,C++的I/O流库,Win32 API的文件操作函数,如CreateFile()、WriteFile()、ReadFile(),MFC的文件操作类,如CFile和CStdioFile等等。但是在大型的数据文件,上面的文件处理方法是不太适合的。对于大文件的操作一般是以内存映射文件来加以处理的。为此本人以读取著名的遥感图像文件格式pix文件来说明如何应用内存文件映射来设计一个通用的文...
阅读全文
对话框DoModal()函数调用失败一般而言有两种表现形式:一是对话框弹不出来,但是没有错误提示;二是对话框弹不出来,同时伴随内存访问错误的提示框出现。 第一种表现主要是因为没有对资源句柄进行切换造成的,以在DLL中弹出对话框中最为常见。解决办法是:如果是MFC规则DLL,可以使用所有导出函数的开始处添加 AFX_MANAGE_STATE宏,具体代码为:AFX_MANAGE_STATE(AfxGetStaticModuleState( )),如果是MFC扩展DLL,具体做法是 1....
阅读全文
开发时有一个工程的一个文件的断点无效,VS 2005提示说当前不会命中断点。源代码与原始版本不同,请在断点选项里设置允许源代码与原始版本不同。这个是针对单个断点进行设置。如果要对所有的断点进行设置,则要在“工具”——〉“选项”——〉“调试”——〉“要求源文件与原始版本完成匹配”去掉勾。 实际上有比这个办法更好的办法,就是将出问题的文件用notepad打开,然后另存为Unicode编码,覆盖原来的文件。 网上另外有一种办法是: ...
阅读全文
    目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称"静态库"),另一种为动态连接库(DLL,以下简称"动态库")的导入库(Import Libary,以下简称"导入库")。 静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起。比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态lib只是壳子。 ...
阅读全文
2012-07-14 23:04 工业·编程 ⁄ 共 494字 暂无评论
CString转换为std::string,网上通行的做法是利用CString的GetBuffer函数。具体做法如下(编译环境为VS C++ 2005+sp1, Win XP+sp3,多字节字符集编译,以下同): CString strMFC= _T("Hello!"); std::string str2(strMFC.GetBuffer()); strMFC.ReleaseBuffer(); CString strMFC= _T("Hello!"); std::string str2(strMFC.GetBuffer()); strMFC.ReleaseBuffer(); 这种做法在unicode字符集下也可行。今天...
阅读全文
是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理解的呢?这是一种很自然的思路,开始我也是这样理解。 但是在两年前的一个项目中,我发现不用__declspec(dllimport)似乎也可以。比如现在我新建一个使用共享MFC DLL的规则DLL工程:...
阅读全文
2012-07-14 22:58 工业·编程 ⁄ 共 3992字 暂无评论
前天同事问我在CFileDialog中多选时按确定按钮后DoModal函数的返回值是IDCANCEL。我说不太可能吧。他的代码大致如下: static TCHAR BASED_CODE szFilter[] = _T("TXT(*.txt)|*.txt||"); CFileDialog dlg(TRUE,_T("txt"), NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, szFilter, NULL ); INT_PTR nResult = dlg.DoModal(); static TCHAR BASED_CODE szFilter[] = _T("TXT(*.txt)|*.txt||"...
阅读全文