C/C++
safedebug
面具下的一种思想
展开
-
最简单的24位位图结构解析
#include "stdafx.h"#include <stdio.h>unsigned char data[374] = { 0x42, 0x4D, 0x76, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x0.原创 2020-08-26 13:37:20 · 3177 阅读 · 0 评论 -
通过进程PID获取 HWND
// dddddddddd.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include HWND GetWindowHandleByPID(DWORD dwProcessID){ HWND h = GetTopWindow(0); while ( h )原创 2014-02-12 16:19:34 · 5341 阅读 · 2 评论 -
源码资料下载学习地址
不用登陆,直接就可以下载http://www.codesky.net/showhtml/23274.htm先记录一下,后面慢慢更新地址原创 2014-02-12 18:21:43 · 828 阅读 · 0 评论 -
vector删除元素
#include #include using namespace std;int main(int argc, char* argv[]){ vector mydata; mydata.push_back(1); mydata.push_back(2); mydata.push_back(3); mydata.push_back(4); mydata.push_原创 2014-03-21 17:04:03 · 651 阅读 · 0 评论 -
C++简单多态
class CImage{public: virtual void Draw() = 0;};class CPng : public CImage{public: virtual void Draw(){ printf("CPng printf\r\n"); }};class CBmp : public CImage{public: virtual void D原创 2014-05-02 15:54:05 · 517 阅读 · 0 评论 -
vc6 调试输出行号加强版
#include #include #include #define _DEBUG_BUF_SIZE_ 1048static char _buf_[_DEBUG_BUF_SIZE_];class trace_impl{public: trace_impl(const char* file,size_t line):file_(file),line_(line) {原创 2014-05-04 13:09:29 · 769 阅读 · 0 评论 -
VC6.0设置UNICODE编码
第一,首先在项目 -- > 属性 --->c/c++标签页面 --->预定义 添加_UNICODE 然后[Project] --> [Settings] --> 选择"Link"属性页, 在Category中选择Output, 再在Entry-point symbol中填入wWinMainCRTStartup, 即可 参考资料原创 2014-03-21 17:27:21 · 5183 阅读 · 0 评论 -
简单深拷贝
class test{public: test() { } const test& operator=(const test& o) { data = o.data; return *this; } void mset(int a) { data = a; } int mget() { return data; }private: int data原创 2014-05-04 11:16:00 · 459 阅读 · 0 评论 -
c操作lua栈 6
void printstack(lua_State* L){ for (int i = 1; i <= lua_gettop(L); i++) { int nType = lua_type(L,i); switch (nType) { case LUA_TNIL: printf("index = %d nil == \n",i); break; case L原创 2014-03-23 14:40:52 · 628 阅读 · 0 评论 -
libcUrl 简单使用(一)
#include "stdafx.h"#include "curl/curl.h"int main(int argc, char* argv[]){ CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://ex原创 2014-05-08 10:33:32 · 681 阅读 · 0 评论 -
sqllite3 vc6.0 编译版,带使用例程
#include #include "sqlite3.h"using namespace std;int sqlite3_exec_callback (void *data, int nColumn, char **colValues, char **colNames){ for (int i = 0; i < nColumn; i++) printf ("%s\t", colVa原创 2014-05-10 21:41:30 · 808 阅读 · 0 评论 -
取文本中间
_bstr_t GetMid(LPCTSTR lpSrc,LPCTSTR lpStart1,LPCTSTR lpStart2,LPCTSTR lpszEnd,BOOL IsIncludeStart = FALSE){ _bstr_t _tszTmp; CString szStart1=lpStart1; CString szStart2=lpStart2; int nStartCo原创 2014-03-29 10:30:08 · 1519 阅读 · 0 评论 -
控制台显示 Unicode中文
wchar_t *p = L"safedebug大大"; setlocale(LC_ALL,"chs"); wprintf(L"%s\n",p); wprintf(L"中文测试/n");setlocale(LC_ALL,"chs"); 加上这一句就可以了原创 2014-03-19 13:03:37 · 1454 阅读 · 0 评论 -
简单注册表操作函数
// 注册表操作.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #pragma comment(lib,"Shlwapi.lib")BOOL RegIsExit(HKEY hRoot,LPCTSTR lpSubKey){ HKEY hKey;原创 2014-02-26 18:40:00 · 618 阅读 · 0 评论 -
结构体对齐
#include "stdafx.h"#include #pragma pack(push) #pragma pack(1) typedef struct _TEST{ DWORD dwA; char cch;}TEST,*PTEST;#pragma pack(pop)typedef struct _TEST1{ DWORD dwA; char cch;}TEST1,*原创 2014-02-15 12:47:27 · 581 阅读 · 0 评论 -
字符串分割使用方法
// splitstring.cpp : Defines the entry point for the console application.//#include "stdafx.h"#pragma warning(disable : 4786)#include #include //字符串分割函数std::vector split(std::string str,std:原创 2014-01-25 22:44:56 · 888 阅读 · 0 评论 -
易语言支持库生成器
源码下载地址编译环境 vc 6.0http://pan.baidu.com/s/1jGHThci教程里面已经很详细了,更多的功能大家可以自己添加源码是 用 vc 6.0 写的,大家可以改的更智能,现在几乎已经可以把自己写的程序,或者其他程序,直接生成支持库了教程下载http://pan.baidu.com/s/1o64nMEA原创 2014-02-19 11:08:03 · 1314 阅读 · 0 评论 -
dll导出函数 与mfc 函数冲突问题
在dll导出函数时,并且使用到了mfc的函数,这是,如果函数名字就会冲突,导致LINK : fatal error LNK1152: cannot resolve one or more undecorated symbolsLINK : fatal error LNK1141: failure during build of exports file遇到这种情况不要紧张,只需原创 2014-03-10 21:49:21 · 1156 阅读 · 2 评论 -
自己写的一个 ini 操作类
#include "stdafx.h"#include class CIni{public: #define FILENAME_LENTH 256 #define BUFFER_SIZE 1024 CIni(LPCTSTR lpszFileName,DWORD dwLen) { ZeroMemory(szFileName,FILENAME_LENTH); CopyMem原创 2014-03-06 14:16:33 · 695 阅读 · 0 评论 -
bitset学习笔记
#include #include #include using std::bitset;using std::cout;using std::endl;using std::string;int main(int argc, char* argv[]){ bitset bZero; cout<<bZero<<endl; bZero.set(); cout<<bZe原创 2014-03-07 15:32:50 · 617 阅读 · 0 评论 -
取出文件名称 不包含扩展名
// //取出文件名称 不包含扩展名// TCHAR title[MAX_PATH] = {0};// GetModuleFileName(NULL,title,sizeof(TCHAR)*MAX_PATH);// // int nLen = _tcsclen(title);// TCHAR *pStart = NULL;// for (int n = nLen; n >原创 2014-03-28 09:17:50 · 2001 阅读 · 0 评论 -
查找窗口
如果你在使用findwindow的时候找不到窗口句柄,但是这个窗口又存在那么你就可以使用下面的函数了 CString sz ="提示"; HWND hAll = ::GetDesktopWindow(); HWND hCurrent = ::GetNextWindow(hAll, GW_CHILD); char szTittleDbg[256] = {0}; char原创 2014-03-27 15:45:30 · 634 阅读 · 0 评论 -
取文本中间数组
vector GetMidArry(LPCTSTR lpSrc,LPCTSTR lpStart1,LPCTSTR lpStart2,LPCTSTR lpszEnd,BOOL IsIncludeStart = FALSE){ vector _tszTmp; LPCTSTR lpPS = NULL; LPCTSTR lpPE = NULL; LPCTSTR lpPos= lpSrc;原创 2014-03-29 10:42:59 · 1093 阅读 · 0 评论 -
vc6 在win7 0x64 下的bug修复
在win7 0x64下 使用vc6.0 有两个问题有点蛋疼,就是每次yiq原创 2014-04-26 14:29:20 · 942 阅读 · 0 评论 -
vc 大工程编写技巧
这里说来笑话了。请大家不要介意,我这里的工程原创 2014-04-13 19:08:51 · 567 阅读 · 0 评论 -
VS2010 链接错误
fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏当vs2010 出现这个错误的时候,是您安装了高版本的 VS 比如 2013 或者 2015导致系统中的 cvtres.exe 版本出现的不一致,导致错误。。。最简单,并且能一次解决的办法是这个找到vs2010的安装目录,定位到 例如我的是D:\Program File原创 2015-09-28 16:30:50 · 825 阅读 · 0 评论 -
VC 设置炫彩窗口全屏
百度了很多,很多代码都不能全屏,经过自己研究,找到终于能让炫彩窗口全屏的代码了void XC_SetFullScreen(HWINDOW hWindow){ int iScreenW = GetSystemMetrics(SM_CXSCREEN); int iScreenH = GetSystemMetrics(SM_CYSCREEN); HWND hWnd = XWnd_Ge原创 2015-10-01 15:00:06 · 597 阅读 · 0 评论 -
Windows Socket 模型简单例子
整个工程的源码下载地址为http://download.csdn.net/detail/u012607841/9158527基础类模块源码#ifndef socket_h__#define socket_h__#include #include using namespace std;#pragma comment(lib,"Ws2_32.lib")DWORD原创 2015-10-06 13:35:03 · 518 阅读 · 0 评论 -
炫彩与WKE浏览器交互
在wke的上面我再次封装了。上次看到留言说不知道怎么交互。这次重新拿起wke编译,然后封装了一层,让大家调用变得十分的简单里面公开了 70个api,用炫彩进行封装,使得调用起来很方便。例子里面对常用的功能,比如模拟填表,调用js,禁用cookie,取网页文本等等写了详细的代码。。。这里就不截图了。。有需要大家自己下载源码研究。。。原创 2016-01-12 13:13:54 · 3185 阅读 · 0 评论 -
线程池
ThreadPool.h#pragma once#include #ifndef XC_API#define XC_API extern "C"#endiftypedef unsigned int(__stdcall *WORKERPROC)(void * lpParameter, DWORD userData);typedef struct _ThreadPool{原创 2016-02-19 18:06:49 · 498 阅读 · 0 评论 -
MFC画饼状图
这里我已经封装好了,大家需要的时候只需要改一下,就很好用了#include class XBingTu{public: XBingTu() { m_hBrushLrDa = NULL; m_hBrushLrZhong = NULL; m_hBrushLrXiao = NULL; m_hBrushLcDa = NULL; m_hBrushLcZho原创 2016-06-15 21:59:15 · 2507 阅读 · 0 评论 -
自绘16进制编辑框
这个东西的产生是因为有朋友需要一个16进制编辑器控件,但是网络上的大多数控件调用都不是那么方便找了很多也不好用,才萌生了自己鲁一个16进制编辑框 控件,先后路过两个版本,第一个版本代码冗长,框架设计不是这么合理,所以才有了现在的这个版本,目前这个版本是没有优化的版本,为了新手能看懂大部分代码都没有优化,全部都是自己鲁,要用到自己的程序里面还欠缺一点,大家需要自己去熟悉框架只有熟悉了原创 2016-11-22 20:29:50 · 1291 阅读 · 0 评论 -
可变参数 不定参数的编写
std::string re; va_list vagrc; va_start(vagrc,lpszFormat); int nSize = 4096; re.resize(nSize); do { HRESULT hr = StringCbVPrintfA(re.begin(),nSize,lpszFormat,vagrc); if (hr == S_OK) brea原创 2017-01-13 01:10:56 · 1688 阅读 · 0 评论 -
推箱子小游戏实现
本来想网络上找一些现成的代码,然后移植一下,但是看了很多代码看不懂,后来看了一下逻辑发现应该没什么难度,就自己想着写了一下,成功实现了一下,希望对新手有一些帮助,设计这个推箱子,主要有几个关键点第一,人物第二,墙第三,地板第四,可移动范围,第五,就是当 箱子和坐标重合之后显示成功接下来就是逻辑控制了,这个比较简单,需要判断人物左边是路,还是墙原创 2017-02-28 16:34:40 · 1692 阅读 · 0 评论 -
重载二维数组
template <typename T>class CTArry{public: CTArry(int nCol,int nRow):m_nCol(nCol),m_nRow(nRow) { m_nCol = nCol; m_nRow = nRow; Mallocal(); } CTArry() {原创 2015-07-28 10:12:35 · 1210 阅读 · 0 评论 -
易语言 剪贴板源码格式查看
// char buf[256]={0};// GetClipboardFormatName(49436,buf,256);// UINT format = RegisterClipboardFormat("EClipFormat"); if(OpenClipboard(NULL)) { HANDLE hData =GetClipboardDat原创 2015-05-25 16:29:56 · 1823 阅读 · 0 评论 -
IsProcessInJob undeclared identifier
这个声明在WinBase.h里面,只要包含Windows.h就可以了 但是实践的时候,发先在vc6里面包含了,还是出现这个错误 那么要怎么解决呢?其实很简单。在stdafx.h里面加上这一句,就可以了 #define _WIN32_WINNT 0x0500原创 2015-06-01 13:08:43 · 470 阅读 · 0 评论 -
R6034错误解决办法
今天自己遇到了,通过搜索别人的文章,最后找到一个方法我原来是 vs200原创 2014-07-06 13:34:29 · 2481 阅读 · 0 评论 -
VMware Workstation 虚拟磁盘(VMDK) 编程【抛砖引玉】
大家可以谷歌百度搜,对应VMDK编程的例子基本是没有的,至少我没搜到自己摸索了很久。。代码是vs 2008编写的懂的人可以翻译成 易语言的 他的都是C方式调用。可以封装简单一些,至于作用,可以用来写隐藏文件用,反正大家都不知道你这个是干嘛的。。当然也有其他作用,至于你想做什么用。这个就要看你自己的了。。。。。原创 2014-09-04 20:39:45 · 1751 阅读 · 0 评论 -
vc6.0 MFC 添加控制台
mfc中一般输出信息部方便,用到Out原创 2014-10-12 11:16:13 · 1121 阅读 · 0 评论