C++/MFC
文章平均质量分 66
sunflover454
这个作者很懒,什么都没留下…
展开
-
如何让基于对话框的MFC程序一运行起来就完全隐藏
在OnInitDialog()中添加SetWindowPos(&wndTop, 0, 0, 0, 0, NULL);SetWindowLong(this->m_hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW);原创 2015-03-23 00:45:51 · 591 阅读 · 0 评论 -
stdafx.h(38) : fatal error C1083: 无法打开包括文件:“afxcontrolbars.h”解决办法
stdafx.h(38) : fatal error C1083: 无法打开包括文件:“afxcontrolbars.h”: No such file or directory出现这个问题的原因是项目为VS2008Sp1建的工程,而你现在只有VS2008,没安装Sp1补丁。解决办法:方法1:解决它的根本方法当然就是装SP1,去www.itellyou.cn上找到对应原创 2016-05-25 15:43:40 · 3735 阅读 · 0 评论 -
CrashReport,BugReport的核心--创建dump文件
// minidmp.h#pragma once#include #include #include #include #pragma comment(lib, "dbghelp.lib")inline BOOL IsDataSectionNeeded(const WCHAR *pModuleName){ if(pModuleName == 0) { return FA原创 2016-04-20 14:45:24 · 2263 阅读 · 0 评论 -
VC++获取系统信息/获取OS/获取MAC/获取本地IP/判断是否为网吧
现在很多软件都有统计系统了,说好听点叫做统计用户习惯,改良产品,不好听点,呵呵,我就不说了。核心我已经封装成类了,可以获取操作系统版本,MAC地址,本地IP地址,以及判定是否为网吧。核心代码如下://PCInfo.h#pragma once#include class CPCInfo{public: CPCInfo(void); ~CPCInfo(void);pri原创 2016-05-28 16:59:36 · 5999 阅读 · 0 评论 -
获取Windows系统版本号
前言由于前段时间比较忙,一直没有来跟大家分享交流技术,实在是抱歉,往后我会不定时跟大家分享一些C++技术。废话有些东西看似简单,但坑多着呢,所以大家还是要多亲自尝试,不要眼高手低。核心代码//读取操作系统的名称string GetSystemName(){ SYSTEM_INFO info; //用SYSTEM_INFO结构判断64位AMD处理器 Get原创 2016-05-28 15:48:18 · 17106 阅读 · 4 评论 -
十六进制转字符串StrToHex,字符串转十六进制HexToStr
// HEXSTR.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include /*// C prototype : void StrToHex(byte *pbDest, char *pszSrc, int nLen)// parameter(s): [OUT] pbDest - 输出缓冲区// [IN] pszSrc - 字符串//原创 2016-04-22 13:43:24 · 18247 阅读 · 0 评论 -
Win32获取屏幕可用尺寸/获取桌面可用区域 (即除去任务栏的区域)
//不知道为什么,这样获取的不准确int cx = GetSystemMetrics(SM_CXFULLSCREEN);int cy = GetSystemMetrics(SM_CYFULLSCREEN);上面那个不知道为什么获取结果不理想,有知道的朋友麻烦告知一下我,下面这个好使。//获取可用桌面大小RECT rect;SystemParametersInfo(S原创 2016-05-21 11:55:08 · 7729 阅读 · 2 评论 -
C++ 获取Cookie
string GetCookie(const char *szURL){ string strCookie; LPSTR lpszData = NULL; DWORD dwSize = 0; lpszData = new char[1]; memset(lpszData, 0, 1);retry: if (!InternetGetCookieA(szURL, "", lpszD原创 2016-12-08 13:31:27 · 5638 阅读 · 1 评论 -
C++ url编解码类
//UrlConvert.h#ifndef __URLCONVERT_H__#define __URLCONVERT_H__#pragma once/*使用方法:CUrlConvert url;//Encode teststring str1 = url.UrlEncode_GBK("谷姐");cout << "UrlEncode_GBK " << str1.c_str() <<原创 2016-12-26 13:33:29 · 2721 阅读 · 0 评论 -
如何给程序添加超大图标(EXE大尺寸图标)
自己写的程序,如果更换了图标,编译出来,超大图标显示就会发现图标并没有跟着放大。那么问题来了,就换个图标效果就不同了,很明显时图标有问题。用eXeScope打开vs2013编译出来的MFC对话框程序可以看到如下图:这不止一个图标,而我们替换图标之后,编译,打开发现就只有一个图标,因此可以判断的确是ico图标的问题。在qq群里问了下其他的朋友,有朋友提示ico图标文件可以包含原创 2017-03-08 11:27:48 · 14654 阅读 · 2 评论 -
C++字符串格式化(FormatString)
#include #include using namespace std;string FormatString(const char *lpcszFormat,...){ string strResult; if (NULL != lpcszFormat) { va_list marker = NULL; va_start(marker, lpcszFormat); /原创 2015-12-31 12:47:46 · 9506 阅读 · 0 评论 -
程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
参考文章:http://blog.csdn.net/xmnathan/article/details/39498431// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #pragma warning(disable: 4996) //检查系统版本是否是Vista或更高的版本bo原创 2017-03-13 13:32:33 · 2347 阅读 · 0 评论 -
log4cplus使用备忘
参考文章:http://blog.csdn.net/augusdi/article/details/8989728本文仅以log4plus静态库的编译使用做个初步了解。我下载到的源代码为log4cplus-1.2.0.7z。解压后(我的解压路径D:\CloudSync\Source\Common\)使用vs打开log4cplus-1.2.0\msvc10下的log4cplus.sl原创 2016-02-01 17:30:05 · 955 阅读 · 0 评论 -
CImage实现的全屏PNG截图
本来关于屏幕截图已经写了2篇博文了,但是效果都不是很理想,于是有了这个,直接使用CImage,代码简洁明了,比这个稳定:http://blog.csdn.net/sunflover454/article/details/49533651最后截图生成的PNG文件保存在C:\ScreenShot文件夹下。#include #include //截取全屏保存为pngCString Scr原创 2016-02-03 13:39:45 · 1903 阅读 · 1 评论 -
C++日志类libglog使用
glog简介 Google glog是一个基于程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似,例: LOG(INFO) “LOG”宏为日志输出关键字,“INFO”为严重性程度。主要支持功能:1, 参数设置,以命令行参数的方式设置标志参数来控制日志记录行为;2, 严重性分级,根据日志严重性分级记录日志;3,原创 2015-11-04 21:22:12 · 3732 阅读 · 0 评论 -
使用Visual Leak Detector检查内存泄露
编码过程难免会出现内存泄露问题,VS自带的内存泄露检查又不是很好用,这就导致很多朋友遇到内存泄露问题,很难找到根源,其实前辈们已经有不少解决方法了,今天跟大家分享的是使用三方库Visual Leak Detector检查内存泄露。项目主页:http://vld.codeplex.com/releases备份下载:http://download.csdn.net/detail/sunflov原创 2015-11-10 16:11:36 · 1196 阅读 · 0 评论 -
C++实现屏幕截图(全屏截图)
最近维护的项目,在某些情况下,光有日志还不行,于是添加了截图功能,特定情况下,会自动截图,辅助分析,从而改进程序。以下是截图实现代码。void CDemoDlg::ScreenShot(void){ CWnd *pDesktop = GetDesktopWindow(); CDC *pdeskdc = pDesktop->GetDC(); CRect re;原创 2015-09-24 20:33:34 · 36530 阅读 · 12 评论 -
C++实现的屏幕截图(PNG或BMP)
C++实现的BMP和PNG截图。原创 2015-10-31 15:53:36 · 20099 阅读 · 2 评论 -
randstr随机字符串(VC++)
#include #include using namespace std;string randstr(string strCharElem,int nOutStrLen){ string strRet; strRet.insert(0,nOutStrLen,'\0'); srand((unsigned)time(0)); int iRand = 0; for (int i原创 2015-11-15 12:33:31 · 2053 阅读 · 0 评论 -
VC++获取程序运行路径
string GetAppPathA(){ char szFilePath[MAX_PATH] = {0}, szDrive[MAX_PATH] = {0}, szDir[MAX_PATH] = {0}, szFileName[MAX_PATH] = {0}, szExt[MAX_PATH] = {0}; GetModuleFileNameA(NULL, szFilePath, sizeo原创 2015-12-30 18:18:29 · 2741 阅读 · 0 评论 -
UNICODE GBK UTF-8 编码互转(VC++)
1:UNICODE和GBK互转wstring MBytesToWString(const char *lpcszString){ int len = strlen(lpcszString); int unicodeLen = ::MultiByteToWideChar(CP_ACP, 0, lpcszString, - 1, NULL, 0); wchar_t *pUnicode =原创 2015-12-30 18:15:54 · 5680 阅读 · 1 评论 -
VC++压缩解压zip文件(支持密码)
只能压缩解压zip格式的,不需要dll或者库文件,核心是HZIP,支持带密码压缩解压。//压缩CZipImplement compress;compress.Zip_PackFiles(m_strDirPath,strZipFilePath,"123456789");//只是个Demo就不开线程去做了MessageBox(_T("压缩完成!"),_T("完成"),MB_ICONINFORMATION);//解压CZipImplement compress;compress.Zip_UnPack原创 2015-10-08 22:54:04 · 9981 阅读 · 0 评论 -
HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)
玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。这里有两种实现:1:libcurl实现的CHttpClient类,该类实现了Htpp和Https的get post方法。2:winhttp实现的WinHttpClient类,同样也实现了Htpp和Https的get post方法。两者使用起来都很方便灵活。原创 2015-10-10 22:11:03 · 16105 阅读 · 10 评论 -
(更新)OutputDebugString函数简单封装,实现格式化打印输出(VC++)
MyOutputDebugString是对OutputDebugString的简单封装。微软对OutputDebugString的说明文档地址:https://msdn.microsoft.com/en-us/library/aa363362(VS.85).aspx其中我们主要关心这些:OutputDebugString functionSends a string to原创 2015-09-24 21:00:31 · 4986 阅读 · 1 评论 -
C++轻量级日志类CLogger的使用(更新)
Logger是轻量级日志类,提供写日志功能,支持多线程,支持可变形参数操作,支持写日志级别的设置。原创 2015-11-10 13:54:56 · 17616 阅读 · 10 评论 -
视频播放器SunPlayer开源啦
SunPlayer是我的一个练手项目,它是一个视频播放器。核心播放部分是ffplayer(https://github.com/rockcarry/ffplayer),ffplayer是对ffmpeg的一个c封装,详情请转到github查看。UI部分使用的Troy维护的Duilib(https://github.com/qdtroy/DuiLib_Ultimate),还有一个版本UI使用的原创 2017-04-19 15:06:07 · 5162 阅读 · 3 评论