C++
mos2046
这个作者很懒,什么都没留下…
展开
-
Windbg强制加载符号
一个比较老的模块崩溃,PDB符号文件已经失传,代码是有的,此时强制加载符号文件就有用了,.reload /i XXXX.exe原创 2012-06-29 00:13:43 · 9070 阅读 · 0 评论 -
总结一处笔误
int link_admin_pwd(char * admin_pwd, char *admin, char*pwd){ if (admin == (char *)NULL || pwd == (char *) NULL) { return -1; } if (strlen(admin) == 0 || strlen(pwd) == 0) { return -2; }原创 2014-07-07 16:42:19 · 957 阅读 · 0 评论 -
嵌入清单文件的两种方法
嵌入清单文件的两种方式:原创 2014-09-23 06:16:45 · 3709 阅读 · 0 评论 -
Apache服务启动失败couldn't start errorlog process, unable to open logs
在某用户环境下,Apache服务启动失败,报错信息如下couldn't start errorlog process unable to open logsApache是我们的产品组件,未防止日志过大我们使用了Apache自带的切割滚存日志的组件rotatelogs.exe在httpd.conf配置如下:ErrorLog "|bin/rotatelogs.exe logs/原创 2014-09-03 21:56:30 · 6174 阅读 · 0 评论 -
临界区问题
#include "stdafx.h"#include /*程序运行结果:Win2K3/Win7 显示对话框WinXP 进不了临界区卡死*/int _tmain(int argc, _TCHAR* argv[]){ CRITICAL_SECTION cs; InitializeCriticalSection(&cs); LeaveCriticalSection(&cs原创 2014-10-10 10:45:43 · 753 阅读 · 0 评论 -
VC无法设置断点,断点失效问题
1>本机直接调试,附件进程调试,或远程附加进程调试,都需要先确保VC加载匹配的符号文件!可在调试状态下,可用菜单Debug-|windows-|Modules 或者快捷键(Ctrl+Alt+U)打开模块加载窗口,如果模块已加载,可以看到调试器是否加载匹配的符号,并且可以手动指定符号文件2>确认断点处处代码是否可以执行到3>确认工程设置正确,Configuration Propertie原创 2012-06-27 22:31:23 · 2170 阅读 · 0 评论 -
c/c++崩溃问题收集
访问违例20150107//ATL::CStringCString strSn = L"";strSn.GetAt(strSn.GetLength() -1);20150106TCHAR tcsDefault[6] = _T("");_tcsncpy_s(tcsDefault, _countof(tcsDefault), L"1234567890", _cou原创 2015-01-08 11:28:20 · 769 阅读 · 0 评论 -
溢出
g_CurFileSize,g_TotalFileSize都是unsigned int类型文件大小总共300M左右,本身没有溢出,计算已经下载百分比的时候乘以100就可能溢出了g_CurFileSize* 100坑啊!原创 2015-04-20 19:58:20 · 559 阅读 · 0 评论 -
Failed to create .NET Frameworks PropertyGrid
1. start > run > cmd >2. cd "...\Microsoft Visual Studio 9.0\Common7\IDE"3. devenv.exe /resetskippkgs原创 2015-04-27 10:57:32 · 708 阅读 · 0 评论 -
如何在引号里面引用宏
#include #include #define MY_STR_LEN 32#define __MY_FMT_STR(LEN) "%"#LEN"s"#define MY_FMT_STR(LEN) __MY_FMT_STR(LEN)int _tmain(int argc, _TCHAR* argv[]){ char* input = "0123456789abcdef01234原创 2014-05-13 21:27:31 · 6251 阅读 · 0 评论 -
使用libcurl源码编译不过的问题
使用libcurl源码编译不过的问题setup_once.h(274) : error C2628: '<unnamed-tag>' followed by 'bool' is illegal (did you forget a ';'?)原创 2014-05-07 12:48:42 · 2330 阅读 · 0 评论 -
IsBadReadPtr|IsBadWritePtr调试崩溃
遇到一未找到必然出现条件的崩溃,不知道什么时候能触发崩溃,崩溃dump显示,试图访问了非法的内存或者写入了非法的内存此时如下两个函数就比较有用了: BOOL WINAPI IsBadReadPtr( __in const VOID *lp, __in UINT_PTR ucb);BOOL WINAPI IsBadWritePtr( __in LPVO原创 2012-07-20 02:00:22 · 5594 阅读 · 0 评论 -
C1083: Cannot open type library file: 'msxml.dll': No such file or directory
win2008或者windos7下用vs2005编译 #import "msxml.dll" named_guids raw_interfaces_only 编译失败 fatal error C1083: Cannot open type library file: 'msxml.dll': No such file or directory 将c:/WINDOWS/system32原创 2010-12-14 10:42:00 · 9783 阅读 · 0 评论 -
vc++远程调试工具
简单来说:1>在远程机器跑VC自带的远程调试工具msvsmon.exe,并把要调试的程序跑起来2>用VC调试器附加进程,即可调试 先展开来说:VC8,VC9都自带远程调试工具,可以在开始菜单中找到,以VC2008为例在由 开始菜单=>Microsoft Visual Studio 2008=>Visual Studio Tools=>Visual Studio 2008 R原创 2012-07-31 12:54:13 · 1057 阅读 · 0 评论 -
实际错误代码备忘
2012-10-14 9:08:24复制,粘贴,手误,然后,重新定义了一个名字相同的局部变量,由于变量的作用域问题,返回了一个错误的值,导致严重错误!void foo{ BOOL ret = dosth1(); if (ret != 200) { BOOL ret = dosth2(); } return ret;}2012-8-30 1:12:27vo原创 2012-07-19 11:23:27 · 640 阅读 · 0 评论 -
c语言的一处陷阱:
实际碰到的一个问题,从MSDN上拷贝了一段代码,是用C写的,编译通过,执行崩溃,// test.c 用Unicode方式编译崩溃#include void main(){ STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory(原创 2014-01-04 01:44:59 · 1910 阅读 · 0 评论 -
MessageBoxEx用法
今天突然碰到一个来自HUAWEI的“变态”需求,一个自解压小工具,同事是用NSIS做的,就释放了几个文件,然后弹一个对话框提示修复完成,但是HUAWEI要求该对话框不论是在中文操作系统还是英文操作系统上都要显示为英文。同事开始问我NSIS如何设置语言,后来看了下,NSIS的语言设置是处理其安装向导页面的显示语言的,而现在要求的是用MsgBox 弹窗提示文字全部为英文,于是感觉到,::Message原创 2015-05-21 01:36:37 · 9958 阅读 · 2 评论