C/C++
honker110
这个作者很懒,什么都没留下…
展开
-
error LNK2005: _DllMain@12 已经在 XXXX.obj 中定义
<br />出现这种问题的情形有很多,这里只说明下我遇到的这种情形及其解决方法:<br />问题原因:<br /> 1、 用VS的MFC DLL模板建立DLL项目;<br /> 2、出于实际需要,将自动生成的App模板代码删掉,改用win32风格的DLL入口:<br /> BOOL APIENTRY DllMain( HANDLE hModule, <br /> DWORD ul_reason_for_call,转载 2011-01-06 16:52:00 · 15953 阅读 · 10 评论 -
std::queue
std::queue 是 stl 里面的容器适配器, 用来适配FIFO的数据结构。std::queue, 入队列的方法是: std::queue::push(), 出队列的方法是: std::queue::pop(), 为了异常安全, 这个方法返回void, 所以通常调用std::queue::front(), 查看队列头部的元素, 然后调用std::queue::pop(), 让元素出队列. 今天在写一个服务器程序的时候,发现请求量大的时候,程序发生崩溃,原因是我传入某个函数的string的size()转载 2011-01-12 10:16:00 · 37425 阅读 · 5 评论 -
C++/CLI程序启动时_CrtIsValidHeapPointer(pUserData)错误
<br /> 奇怪的错误,坑死个人啊!!当C++/CLI程序引用了native lib顺利编译之后,程序启动有可能出现以下错误(_CrtIsValidHeapPointer(pUserData)):<br /><br /><br /> <br />这是ms的一个已知bug,原因:<br /> <br />The reason why you get this error is that a winforms application has a managed entry point. The initial原创 2011-01-12 09:55:00 · 1723 阅读 · 2 评论 -
MFC工程打开CLR选项后E-FORM++的引用方法
<br /> <br />EXE工程打开/CLR选项后E-FORM++的引入方法(其它C++DLL在/CLR后出无法解析符号的错误原理也类似,MFC DLL都用共享dll方式而C++DLL用静态链接方式):<br /><br />1.在#include "fo.h" 之前加上#define _FO_STATIC_<br />2.重新设置jpeglib/lpng103/zlib这三个项目属性,General -> Use of MFC =>> Use MFC in a Shared DLL<br /> <br原创 2011-01-26 19:26:00 · 1556 阅读 · 0 评论 -
VC2005打开VC2003项目时fatal error CVT1100: 重复的资源。type:MANIFEST
<br />一个错误的提示为:<br />CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409<br />另一个则提示为:<br />LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏<br /> <br />出现这两个问题的原因都是一个,即文件中的现有资源文件和新资源字符串表 ID 冲突。<br /> <br />解决方案:<br />.rc中注释掉:CREAT原创 2011-04-08 18:08:00 · 1615 阅读 · 0 评论 -
WTL对话框中唯一文本框开始全选问题
当一个窗体上只有一个文本框的时候,窗体显示的时候,文本框中的文字默认是被全部选中的用我自己的继承自CEdit的类来设置SetSel没有效果,只好发消息 : LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam,原创 2011-07-21 17:37:25 · 875 阅读 · 0 评论 -
CTabCtrl或者CPropertySheetImpl的问题
在用一个Dialog中用CTabCtrl或者CPropertySheetImpl显示多个页面时,如果弹出模态对话框,DoModal时会无响应。CTabCtrl用的是http://www.google.cn/codesearch#search&q=CTabCtrlexPropert原创 2011-07-21 17:30:45 · 1033 阅读 · 0 评论 -
使用_CRTDBG_MAP_ALLOC宏与_malloca/_freea不兼容
环境:VC2005 + WTL 8.1 为了定位内存漏洞,在头文件中包含了crtdbg.h, #if defined(_DEBUG)#define _CRTDBG_MAP_ALLOC#include #include #endif // defined(_DEBUG)结果造成创建包含有ActiveX的窗口时报错,问题来自于~CAutoStackPtr这原创 2011-12-01 15:36:24 · 2582 阅读 · 1 评论