
MFC
文章平均质量分 52
codeMyLife
这个作者很懒,什么都没留下…
展开
-
#pragma data_seg()
1,#pragma data_seg()一般用于DLL中。也就是说,在DLL中定义一个共享的,有名字的数据段。最关键的是:这个数据段中的全局变量可以被多个进程共享。否则多个进程之间无法共享DLL中的全局变量。2,共享数据必须初始化,否则微软编译器会把没有初始化的数据放到.BSS段中,从而导致多个进程之间的共享行为失败。3,你所谓的结果正确是一种错觉。如果你在一个DLL中这么写:#pra转载 2013-09-03 10:33:26 · 818 阅读 · 0 评论 -
完整版)原因可能是堆被损坏,这也说明 中或它所加载的任何DLL 中有bug】的解决...
最近在开发项目的时候被这个错误郁闷很久,本来以为是dll加载出错或者是分配内存出错。找了很久都没找出。在网上找了些方法,终于在下面的方法中解决了问题。1、这是运行库文件时的错误。解决方案:打开项目属性-->配置属性-->C/C++-->代码生成-->运行时库,改成多线程调试DLL编译运行,然后可能会出项如下错误:fatal error C1189: #error : B转载 2014-12-18 16:25:31 · 816 阅读 · 0 评论 -
MFC CFileDialog实现源码
// This is a part of the Microsoft Foundation Classes C++ library.// Copyright (C) Microsoft Corporation// All rights reserved.//// This source code is only intended as a supplement to the// Micr原创 2015-01-27 14:13:14 · 3239 阅读 · 0 评论 -
VC++格式化输入输出
转自:在本文中将讲述printf/wprintf/CString.Format等相关函数所使用的格式化输出的语法。函数中格式化声明的一般格式为: %[flags] [width] [.precision] [{h |l | ll | I | I32 | I64}]type其中的每一个蓝色项都代表了格式化输出格式中的一个选项。这些输出格式选项一般使用一个字母或者一个数字来转载 2014-10-17 10:01:31 · 2174 阅读 · 0 评论 -
关于WIN7 双网卡 多播 问题
昨天遇到这么一个问题,系统原创 2014-09-26 15:53:48 · 3894 阅读 · 0 评论 -
关于windows API SetFilePointer
文件大小:100bytesSetFilePointer(原创 2014-09-05 17:12:41 · 1289 阅读 · 0 评论 -
如何判断是否已经安装VC++2008运行库
Visual C++ Redistributable(简称VC运行库),现在的系统VC2005是必须安装,QQ、游戏、网络应用都离不开VC2005的支持,(也就是说VC不安装这些都不能用),VC2008运行库呢是可选的,现在或将来新游戏都依赖VC2008代码呢没什么精辟之处,甚至不屑一顾的代码,那我又为何写这样的垃圾代码呢?如果你经常安装系统软件或游戏哪怕一线主流游戏的安装程序,在安装时都转载 2014-01-20 09:51:41 · 4430 阅读 · 0 评论 -
error C2065: 'CArchiveStream' : undeclared identifier
将项目从VC6转到vs2008时发现了这个错误error C2065: 'CArchiveStream' : undeclared identifier。先是根据网上提供的解决方案,在cpp文件中添加以下代码:#include #include 编译后,仍旧是报原来的错误。转到头文件里一看,发现由于未定义宏__AFXDISP_H__,导致一系列关于CArchiveSt原创 2014-01-10 16:15:47 · 1301 阅读 · 0 评论 -
DLL内存分配相关问题
跨dll使用template/STL需要注意的问题dll:extern "C"{ __declspec(dllexport) void PrintVector(const vector v) { copy(v.begin(), v.end(), ostream_iterator(cout, " ")); }}exe:typedef转载 2013-12-26 10:37:49 · 1304 阅读 · 0 评论 -
跨dll访问STL的map的问题
问题:跨dll,针对Vector引用的传递没有问题,但是Map就出现问题了。原因分析:一句话-----如果任何STL类使用了静态变量(无论是直接还是间接使用),那么就不要再写出跨执行单元访问它的代码。 除非你能够确定两个动态库使用 的都是同样的STL实现,比如都使用VC同一版本的STL,编译选项也一样。强烈建议,不要在动态库接口中传递STL容器!!STL不一定不能在DLL间传递转载 2014-01-06 09:35:44 · 746 阅读 · 0 评论 -
程序员的自我修养: Windows下的动态链接
from: http://blog.youkuaiyun.com/xiaofengsheng/article/details/5356007转载 2014-01-02 17:07:01 · 610 阅读 · 0 评论 -
WalkPreTranslateTree
BOOL PASCAL CWnd::WalkPreTranslateTree(HWND hWndStop, MSG* pMsg){ ASSERT(hWndStop == NULL || ::IsWindow(hWndStop)); ASSERT(pMsg != NULL); // walk from the target window up to the hWndStop window原创 2013-11-29 14:01:12 · 1206 阅读 · 0 评论 -
VC++内存释放总结
1. 用new/malloc显式分配在堆上的内存才需要用delete/free释放,而在栈上分配的如int array[80]在子程序结束时自动释放,分配与释放都和数据类型无关。2. delete一个指针的时候 一定要检查是否为null,否则是个严重的应用程序错误.3.释放一个数组要用delete []4.类对象使用结束后将其delete,不delete的话,当程序退出的时转载 2013-11-14 13:25:28 · 3331 阅读 · 0 评论 -
动态修改CMFCMenuBar及CMFCToolBar的文字及Prompt,ToolTip文字.
1. 修改CMFCMenuBar菜单项的文字,分两种. A. 修改顶层有POP_UP属性的菜单文字,即类型单文档中的" 文件" ,"编辑","视图"等这类一直显示着的. 因为CMFCMenuBar基类是CMFCToolBar,所以有有如下代码: (特别注意: 在单文档中,此函数一定要在主窗口ShowWindow之后调用)[cpp] view转载 2013-11-21 16:19:26 · 1746 阅读 · 0 评论 -
MFC中CStringArray使用
CStringArray继承自CObArray,与它相似的类有CByteArray,CDWordArray,CPtrArray,CUIntArray,CWordArray。这些类都继承自CObArray,操作方法与CObArray的类似。[This documentation is for preview only, and is subject to change in la原创 2013-11-21 17:12:47 · 4703 阅读 · 0 评论 -
CString 中Releasebuffer GetBuffer 相关实现原理
一.函数原型CString::GetBufferLPTSTR GetBuffer( int nMinBufLength );throw( CMemoryException );Return ValueAn LPTSTR pointer to the object’s (null-terminated) character buffer.Paramet转载 2013-10-21 15:57:04 · 851 阅读 · 1 评论 -
CListCtrl数据显示问题
问题描述:将CListCtrl无法正常显示数据,第一次显示数据时完全正常,第二次显示数据时,控件不显示数据,利用强制刷新也不行。经调试发现,数据已经写入CListCtrl控件内存,只是因为某种原因无法呈现出来。原因:第一次显示数据之后,首先清空了控件中的所有记录,然后清空了所有的标题条目;在下一次数据显示之前,重新初始化标题栏,添加记录。清空标题栏的代码注释掉之后,数据就能正常显示了。解决原创 2013-09-20 18:41:08 · 1812 阅读 · 0 评论 -
WINAPI recv引发10045的问题
原因是TCP套接字不支持MSG_WAITALL属性原创 2014-12-22 08:55:17 · 1039 阅读 · 0 评论