随笔分类 -  C++

CWnd派生的控件处理MouseMove, MouseHover, MouseLeave
摘要:控件的Notify属性要为TRUE, WM_MOUSEMOVE就可以用MFC标准消息映射接收到.要处理WM_MOUSEHOVER和WM_MOUSELEAVE, 需要在OnMouseMove里写入: TRACKMOUSEEVENT sEvent = { sizeof(TRACKMOUSEEVENT), TME_LEAVE|TME_HOVER, GetSafeHwnd(), 5 }; _TrackMouseEvent(&sEvent);才可以接收到hover, leave消息. 阅读全文

posted @ 2013-11-28 20:31 horane.jo 阅读(417) 评论(0) 推荐(0)

_tcscpy_s的size应至少为src的长度+1(要把\0计算在内)
摘要:RT 阅读全文

posted @ 2013-09-23 16:46 horane.jo 阅读(311) 评论(0) 推荐(1)

用INET(CHttpFile)下载有重定向链接时获取最终URL的方法.
摘要:CString GetRedirectedURL(CString p_URL){ CString szFinalUrl; CInternetSession _session; CStdioFile * pcsf; CHttpFile * pchf; try { pcsf = _session.OpenURL(p_URL, INTERNET_FLAG_TRANSFER_BINARY); CHttpFile * pchf = (CHttpFile*)pcsf; CHAR buf[2048] = {0}; DWORD dwOptionReaded = 0; pchf->QueryOptio.. 阅读全文

posted @ 2013-07-10 17:03 horane.jo 阅读(615) 评论(0) 推荐(0)

GetDlgItem以及其他获得CWnd相关的函数要注意。。
摘要:不在窗口类内执行的G...函数得到的CWND指针是不可靠的比如有一个UINT Proc(LPVOID lpv);函数,在窗口函数中调用CWinThread * cwt = AfxBeginThread(Proc, this);把主窗口指针传入线程函数,在线程函数中转换为Dlg指针,通过此指针调用GetDlgItem(IDC_TEST_EDIT)和在窗口函数中调用GetDlgItem(IDC_TEST_EDIT)函数获得的CWnd*指针是不同的利用转换指针获得的是不可靠的,所以要尽量在窗口函数中执行这些函数.或者在使用CWnd期间,要保持GetDlgItem的父级别有效.否则会崩溃. 阅读全文

posted @ 2013-07-03 16:16 horane.jo 阅读(311) 评论(0) 推荐(0)

C++指针作为函数参数的注意
摘要:int fun1(int * p_pi);int fun2(int p_ai []);这两种均不能使用sizeof来获得正确大小.如果传入指针是堆内存(malloc等分配),可以使用cout << _msize(k)/sizeof(*k) << endl;来获得其正确大小,不过因为传入指针特性未知,也无法针对指针类型来做限制,所以比较危险,传入栈内存指针后会出错,很不稳定. 阅读全文

posted @ 2013-06-08 11:39 horane.jo 阅读(392) 评论(0) 推荐(0)

C++读写注册表的问题
摘要:UNICODE态下,在读取注册表的时候有时会只获得一个字符,是因为RegQueryValueEx的参数虽然是LPBYTE(unsigned char *),但是读出来的数据却是按照WIDECHAR形式读出的,所以可以直接把LPBYTE强制转换成TCHAR,再加以利用就可以了.写入的时候,如果以TCHAR形式写入,则需要用memcpy(data_to_be_write_LPBYTE, data_wide_char_LPTCHAR, wcslen(data_wide_char_LPTCHAR));来拷贝数据,然后再用LPBYTE的数据写入.尤其是对于有中文的情况,以上的读写方法都可以正常实现. 阅读全文

posted @ 2013-06-06 16:19 horane.jo 阅读(457) 评论(0) 推荐(0)

[NOTE]TinyXML2读取ANSI格式XML里中文的问题.
摘要:环境是WIN8 PRO X64, VS 2012, 工作工程里的XML读取之后就是乱码,但是我建立的测试工程就正常.读取的是同一个xml文件,字符集环境也相同,但是读取就是出问题.把两个工程拷给老大,在老大机器上用VS10运行,正常读取.原因不明,只找到了解决办法.解决办法就是把存储buf直接用wchar_t,自己手动用MultiByteToWideChar()来转换.很是不解.在老大机器上都正常,说明代码没问题.在我机器上有一个正常,说明我机器没问题.那么问题会出在什么地方?蛋疼. 阅读全文

posted @ 2013-06-03 18:16 horane.jo 阅读(689) 评论(0) 推荐(0)

【转】C++ GetLastError() 返回值对应表
摘要:〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效。〖14〗-存储器不足,无法完成此操作。〖15〗-系统找不到指定的驱动器。〖16〗-无法删除目录。〖17〗-系统无法将文件移到不同的驱动器。〖18〗-没有更多文件。〖19〗-介质受写入保护。〖20〗-系统找不到指定的设备。〖21〗-设备未就绪。〖22〗 阅读全文

posted @ 2013-05-27 14:05 horane.jo 阅读(2650) 评论(0) 推荐(0)

指向 类成员函数 指针的用法
摘要:C++在使用函数指针调用类成员函数的时候会遇到很多问题,以下是解决办法:代码//test.hclass CMyc{public: int fun(int); typedef int (CMyc::*FUNPTRTYPE)(int); void fun2(int);};//test.cpp#include <iostream>#include "test.h"//写在这也可以//typedef int (CMyc::*FUNPTRTYPE)(int);int CMyc::fun(int i) { std::cout << i << std: 阅读全文

posted @ 2013-05-23 16:02 horane.jo 阅读(288) 评论(0) 推荐(0)

Base64编解码算法详解(附C/C++源码)[转自CSDN]
摘要:Base64不是什么新奇的算法了,不过如果你没从事过页面开发(或者说动态页面开发,尤其是邮箱服务),你都不怎么了解过,只是听起来很熟悉。对于黑客来说,Base64与MD5算法有着同样的位置,因为电子邮箱(e-mail)正文就是base64编码的。那么,我们就一起来深入的探讨一下这个东东吧。 对于一种算法,与其问“它是什么?”,不如问“它实现了什么?”Base64实现了:将任意字节转为可读字符的编码。我们知道,除了页面上的文本,计算机中的数据还有很多是不可见的。那么我们再扯一扯编码的问题吧。 通俗的说,编码就是给某个文字符号边上一个数字序号,计算机在现实这个文字符号(字符)的时候,根据这个序号到 阅读全文

posted @ 2013-04-02 22:36 horane.jo 阅读(898) 评论(0) 推荐(0)

MFC框架的HTTP文件下载/上传
摘要:1、下载文件Download(const CString& strFileURLInServer, //待下载文件的URLconst CString & strFileLocalFullPath)//存放到本地的路径{ ASSERT(strFileURLInServer != ""); ASSERT(strFileLocalFullPath != ""); CInternetSession session; CHttpConnection* pHttpConnection = NULL; CHttpFile* pHttpFile = NU 阅读全文

posted @ 2013-04-01 21:19 horane.jo 阅读(442) 评论(0) 推荐(0)

获取HTTP文件的大小
摘要:MFC框架实现,UNICODE字符集。void Filesize(){ //初始化数据 CString cstrSize; CString cstrURL(_T("http://www.baidu.com/")); CHttpFile * chFile = NULL; CInternetSession ciSession(NULL, 0); //获得文件大小 chFile = (CHttpFile *)ciSession.OpenURL(cstrURL); chFile->QueryInfo(HTTP_QUERY_STATUS_CODE, cstrSize); if( 阅读全文

posted @ 2013-03-08 17:54 horane.jo 阅读(797) 评论(0) 推荐(0)

导航