![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序设计
红色代码
Debug The World
展开
-
xml解析
1.首先从http://download.microsoft.com/download/b/7/1/b71d5305-618d-4b82-858b-386db3cc4453/msxml6.msi下载msxml6安装包.2.在Stdafx.h中引入库文件:#import 3.在InitInstance中初始化ole.加入AfxOleInit()语句.4."生成xml"按钮事件代码Up原创 2010-05-04 00:36:00 · 683 阅读 · 0 评论 -
PCRE++编译
下载并安装CMake解压pcre。打开CMake GUI,指定”where is the source code:”到D:/dev/pcre-8.21,指定”where to build the binaries:”到D:/dev/pcre-8.21/out,点Configure,然后有很多配置,如果需要支持Unicode,勾选PCRE_SUPPORT_UNICODE_PROPERTI转载 2013-11-26 01:44:02 · 2612 阅读 · 0 评论 -
SQLite 简单用法
CString UTF8ToUni(char* UTF8) { DWORD dwUnicodeLen; //转换后Unicode的长度 TCHAR *pwText; //保存Unicode的指针 CString strUnicode; //返回值 //获得转换后的长度,并分配内存 dwUnicodeLen = MultiBy原创 2013-12-03 16:38:31 · 785 阅读 · 0 评论 -
VC检测内存泄露
头文件中加入如下代码#define _CRTDBG_MAP_ALLOC#include #include #ifdef _DEBUG#ifndef DBG_NEW#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )#define new DBG_NEW#endif#endif main函数中加入如下代码转载 2014-01-14 23:33:26 · 802 阅读 · 0 评论 -
汇编和C++函数互调
新建ASM文件 MyAsm.asm,内容如下.386.model flat,stdcallCppFunc PROTO.DATAtext db 'Hello'.CODEAsmFunc proc mov eax,10 invoke CppFunc RETNAsmFunc ENDPEND在此ASM文件右键-属性-常规:项类型:改为自定义生成工具.然后再常规-命令行中设置原创 2014-03-31 22:40:20 · 1631 阅读 · 0 评论 -
I/O Completion Ports
I/O Completion Ports点击打开链接I/O completion ports provide an efficient threading model for processing multiple asynchronous I/O requests on a multiprocessor system. When a process creates an I/O转载 2014-04-20 17:22:51 · 899 阅读 · 0 评论 -
Synchronization and Overlapped Input and Output
OVERLAPPED/*It is safer to use a separate event object for each overlapped operation,rather than specify no event object or reuse the same event object for multiple operations.If no event object i原创 2014-04-20 17:18:06 · 808 阅读 · 0 评论 -
Synchronous and Asynchronous I/O
Synchronous and Asynchronous I/Ohttp://msdn.microsoft.com/en-us/library/windows/desktop/aa365683%28v=vs.85%29.aspxThere are two types of input/output (I/O) synchronization: synchronous I/O and转载 2014-04-20 17:20:51 · 1131 阅读 · 0 评论 -
GUI程序控制台输出调试信息
#pragma once#include #include #include class CConsoleDebug{public: CConsoleDebug(SHORT nWidth = 30, SHORT nHeight = 3000): m_pFile(NULL) {#ifdef _DEBUG AllocConsole();原创 2014-06-24 21:29:08 · 1815 阅读 · 0 评论 -
内存泄露检测类
#pragma once#define _CRTDBG_MAP_ALLOC#include #include #ifdef _DEBUG#ifndef DBG_NEW#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )#define new DBG_NEW#endif#endifclass CMemoryL原创 2014-06-24 21:30:37 · 676 阅读 · 0 评论 -
HBITMAP另存为JPEG/PNG/TIFF/GIF/BMP
BOOL GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { UINT num = 0; UINT size = 0; GetImageEncodersSize(&num, &size); if(size == 0) r...原创 2014-07-28 18:05:13 · 3961 阅读 · 0 评论 -
ADO在C++中的使用
最近程序中用到读写数据库,看了些例子,查了番MSDN,下面把详细步骤写出来,以备忘,或与同行共勉。读写数据库的技术很多,现在多用ADO。ADO以COM方式提供,所以它的很多行为遵循COM规范。首先,要引入ADO的COM文件,它的位置一般在"C:/Program Files/Common Files/System/ado/msado15.dll"。1. 引入ADO打开预编译头文件St转载 2014-08-12 11:00:51 · 849 阅读 · 0 评论 -
HTTP POST数据时,一定要将数据转换为UTF8再调用HttpSendRequest!!!
崩溃了,MSDN上看到这句话。。。[code=html]Note The HttpSendRequestA function represents headers as ISO-8859-1 characters not ANSI characters. The HttpSendRequestW function represents headers as ISO-8859-1 charac原创 2014-08-15 03:46:09 · 9282 阅读 · 0 评论 -
VS2012命令行编译项目
call "D:\Program Files\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"cd /d %~dp0msbuild "WPEX.vcxproj" /p:Configuration=Debug /m原创 2013-11-09 17:39:27 · 9573 阅读 · 0 评论 -
调用 libcurl 出现各种莫名其妙的问题!shit
首先是编译成静态链接库时的链接问题..MD,原来是curl.h中的宏定义引起的.导致静态链接时反而动态import去了.解决方法就是在预处理器中定义CURL_STATICLIB宏第二个就是调用 curl_easy_setopt( m_CurlHandle, CURLOPT_URL, lpszRemotePath ); 设置远程地址的问题!!! 这个问题也很蛋疼!原来第三个参数,也就是原创 2013-09-11 17:42:19 · 986 阅读 · 0 评论 -
线程中向窗口发消息注意
<br />项目中的一个bug,困扰了整整4天....串口监视线程中改变工具栏的按钮图形和文字,一开始用线程中传递过来的窗口指针来操作工具栏,总是在debug模式下SetButtonInfo下断言,但是在release下却正常,功能也正常.一开始怀疑线程参数传递错误,后来将视类,框架类的窗口指针放在结构体中传递给线程.还是不行.后来无奈用自定义消息来发命令.结果出人意料的正常了!!!线程啊线程,天使是你,恶魔也是你....原创 2010-12-16 16:57:00 · 1162 阅读 · 0 评论 -
线程同步之二:互斥量
互斥量(Mutex):HANDLE m_Mutex=CreateMutex(NULL,FALSE,NULL); //创建互斥量,初始化创建者线程不拥有该互斥对象(即无信号状态)WaitForSingleObject(pDlg->m_Mutex,INFINITE); //等待互斥量为有信号状态(即等待调用者线程拥有该对象),若无信号,则调用线程将被无限期挂起.ReleaseMutex(pDlg->m_Mutex); //调用者线程不再拥有该互斥量.(即将该互斥量置为有信号状态)CloseHand原创 2011-02-09 00:31:00 · 1067 阅读 · 0 评论 -
C++检测内存泄露
启动函数中加入 _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF); _CrtSetBreakAlloc(203);其中203为第203第分配内存原创 2012-11-28 01:11:33 · 548 阅读 · 0 评论 -
C++通过IDispatch接口返回CString给JS
C++通过IDisppatch接口返回CString给js,在IDispatch的Invoke中使用如下代码 if ( wFlags & DISPATCH_METHOD ) { CString strPath=pUI->showLocalFolder(); VariantInit(pVarResult); COleVariant vt=strPath; Var原创 2012-12-06 23:54:06 · 1158 阅读 · 0 评论 -
MS INET控件在Debug下的断言错误
一个MFC程序中使用了MSINET控件,结果在我的机器上运行正常,跑到win7下却是各种问题,总是断言在winocc.cpp的373行,用windbg调试后发现返回0x80040112错误,Activex控件创建失败,百思不得其解,后来在网上发现一篇文章写道,出现此错误是因为没有注册授权引起,解决方法如下:将以下内容写入一个注册表文件,导入即可.Windows Registry Editor原创 2012-12-26 10:17:07 · 1390 阅读 · 1 评论 -
suse11下配置jdk环境变量
vi /etc/profile ,在文件末尾添加如下代码JAVA_HOME=/mnt/Oracle/Middleware/jdk160_29/CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$PATH:$JAVA_HOME/binexport JAVA_HOME CLASSPATH PATH原创 2012-12-28 17:08:02 · 3007 阅读 · 0 评论 -
MFC调用MS Internet Transfer Control
项目中需要获取http网页内容,一开始使用了CHttpSession的方法,但是只能同步使用,网速慢了界面就卡在那里了,用户体验很不好.便考虑使用异步http的方式,Winnet的异步方式太繁琐,时间不允许去深究.突然发现vb中能使用MS ITC控件,便想到MFC中也能用.可是调用Execute方法时不会传参了,网上清一色vb的教程,摸索了半天,实现方法如下:1:关联一个ITC的控件变量m_I原创 2012-12-21 15:01:20 · 927 阅读 · 0 评论 -
CMiniDump类 程序崩溃时自动保存Dump文件
#pragma once#include class CMiniDump{public: CMiniDump( void ); virtual ~CMiniDump( void ); protected: static BOOL GetModulePath( LPTSTR lpBuf, DWORD dwBufSize ); static LONG原创 2013-08-19 15:19:42 · 2603 阅读 · 0 评论 -
Windbg的各种符号服务器
通常使用windbg都是用M$的符号,但是如果你去搞别的东西,比如调试firefox,符号何来?给大家提供一些常见符号服务器的地址Microsoft – http://msdl.microsoft.com/download/symbolsFirefox – http://symbols.mozilla.org/firefoxChrome – http://chromi转载 2013-08-12 11:03:54 · 1019 阅读 · 0 评论 -
TLS
Thread Local StorageThreads may need to allocate and manage their own storage independently of and protected from other threads in the same process. One technique is to have the creating thread call转载 2013-08-12 17:50:49 · 1243 阅读 · 0 评论 -
WebBrowser中禁用脚本错误对话框
#include #include #include #include class CDisableScriptErrHelper : public IDocHostUIHandler , public IOleCommandTarget{public: HRESULT STDMETHODCALLTYPE SetHandler( CComPtr spWeb转载 2013-08-15 19:11:27 · 1625 阅读 · 0 评论 -
mhook编译为静态库
编译成静态库时没有问题,可是到了主程序中编译时总是出现链接错误,提示 _InitDisassembler找不到符号.解决方法:找到静态库工程的disasm.c文件,右键属性-C\C++-高级-编译为:选择编译为C代码即可原创 2013-10-23 01:15:08 · 3077 阅读 · 1 评论 -
ATL创建COM服务时必须注意的问题
1:用ATL向导创建COM组件时,必须指定ProgID2:ATL向导生成的RGS有BUG,必须手工添加一句 val AppID = s '%APPID%'像下面这样HKCR{ ProgIDMyInterface.1 = s 'CMyInterface Class' { CLSID = s '{5B91E508-D66E-4F27-A371-E0D5FC3AAA0B}' } P原创 2015-01-31 02:11:15 · 1655 阅读 · 0 评论