
MFC
文章平均质量分 50
打小我就狂
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 获取系统版本
【代码】C++ 获取系统版本。原创 2023-06-26 15:26:28 · 1110 阅读 · 0 评论 -
C++面经
面试常见问题 C++基础问题原创 2022-12-29 09:18:25 · 1671 阅读 · 0 评论 -
获取文件路径跟大小 结构体 vector容器处理
MFC原创 2022-03-08 11:26:32 · 294 阅读 · 0 评论 -
lib编译使用出现 error LNK2038: 检测到“RuntimeLibrary”的不匹配项 解决方法
编译bit7z遇到编译好后lib调用出现的问题..lib编译使用出现 error LNK2038: 检测到“RuntimeLibrary”的不匹配项 解决方法解决:编译lib的时候修改原创 2022-03-07 17:16:58 · 800 阅读 · 0 评论 -
C++判断字符串是否为字符,数字,空格等
#include<ctype.h>中包含了一系列字符函数函数名称 返回值【输入是字符char】 isalnum() 如果是字母或数字,返回true isalpha() 如果是字母,返回true isdigit() 如果是数字,返回true islower() 如果是小写字母,返回true ispunct() 如果是标点符号,返回true isspace() 如果是空白字符,包括空格、进...原创 2022-03-03 09:11:58 · 3229 阅读 · 1 评论 -
TortoiseMerge 源码下载操作
SVN代码比较工具原创 2022-05-27 10:35:56 · 355 阅读 · 0 评论 -
设备管理器数据获取.驱动名,PID,VID
#include <setupapi.h>#include<list>#pragma comment(lib,"setupapi.lib")void CollectUSBInfo(){ // 获取当前系统所有使用的设备 DWORD dwFlag = (DIGCF_ALLCLASSES | DIGCF_PRESENT); HDEVINFO hDevInfo = SetupDiGetClassDevs(NULL, NULL, NULL, dwF...原创 2021-11-22 15:12:54 · 1308 阅读 · 0 评论 -
_beginthreadex 线程传入数组参数 单独参数
vector<CString>* pVec = new vector<CString>; pVec->push_back(ArrPath.to_string().c_str()); pVec->push_back(UUid.to_string().c_str()); unsigned uId = 0; HANDLE handle = (HANDLE)_beginthreadex(NULL, 0, SetSaveSeletePath...原创 2021-10-26 17:03:26 · 416 阅读 · 0 评论 -
INI文件操作 sqlite 删除 插入 查询操作 笔记
WritePrivateProfileString(TEXT("LOG"), TEXT("LEVEL"), 写入的文本, TEXT(".\\config.ini"));CString ReadIni(CString strIniName, CString strIniFileName){ TCHAR szAppPath[MAX_PATH] = { 0 }; UINT uRet = GetPrivateProfileString(TEXT("Configuration"), strIni...原创 2021-08-02 17:25:46 · 209 阅读 · 0 评论 -
C++ 判断文件是否存在 不存在创建函数
//判断文件夹是否存在不存在创建int QueryFolder(CString dir){if (dir[dir.GetLength() - 1] != ‘/’){dir += ‘/’;}CString strName = dir;CString strDecompose;while (1){int nRetFind = strName.Find(’/’);if (nRetFind == -1){break;}strDecompose += strName.Left(nRet原创 2021-07-29 17:26:57 · 1475 阅读 · 0 评论 -
STL 多层List使用
struct FileDirectoryStruct{CStringA strName;UCHAR uFlag; //bit0: 为0表示文件,为1表示目录UINT64 createTime; //创建时间UINT64 modifyTime;//修改时间UINT64 fileSize;//文件大小list<FileDirectoryStruct*> child;FileDirectoryStruct* parent;};取值:BOOL CopyIphoneFileStruc原创 2021-07-27 10:31:40 · 122 阅读 · 0 评论 -
C++ ini配置文件操作
获取配置文件指定数据 :UINT uRet =GetPrivateProfileString(TEXT("System"), TEXT("version"), NULL, szAppPath, MAX_PATH, TEXT(".\\Update\\ServerVersion.ini")); //目录为当前程序运行目录写配置文件:WritePrivateProfileString(TEXT("UpdateFile"), TEXT("File"), strFormat, TEXT(".\\Versio.原创 2021-06-28 17:07:27 · 296 阅读 · 0 评论 -
双线程操作控制--笔记
int iTry = 5; BOOL bRet = FALSE; while (iTry) { //kill samfirme; SetProcessClose(L"SamFirm"); MyRunCmd mrc; mrc.Run(path); unsigned int tid; g_ReadThread = (HANDLE)_beginthreadex(NULL, 0, CMDGetDa...原创 2021-06-02 09:08:32 · 178 阅读 · 0 评论 -
CMD 进程ID关闭进程 taskkill
C:\Users\Administrator>taskkill /?TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]描述: 使用该工具按照进程 ID (PID) 或映像名称终止任务。参数列表: /S system 指定要连接的远程系统。 /U [...原创 2021-06-02 09:05:12 · 1123 阅读 · 0 评论 -
MFC 查找窗口句柄 获取进程ID 通过ID查找句柄
typedef struct EnumFunArg{ HWND hWnd; DWORD dwProcessId;}EnumFunArg;BOOL CALLBACK lpEnumFunc(HWND hwnd, LPARAM lParam){ EnumFunArg* pArg = reinterpret_cast<EnumFunArg*> (lParam); DWORD dwProcessId; GetWindowThreadPro...原创 2021-05-27 11:45:39 · 1876 阅读 · 0 评论 -
MFC 错误 error LNK2019: 无法解析的外部符号 __imp_SetupDiDestroyDeviceInfoList
原创 2021-05-24 16:25:38 · 1698 阅读 · 0 评论 -
C char追加数据拼接 计算运行时间 memcpy malloc申请内存
#include <iostream>#include <memory.h>#include <stdio.h>#include "time.h"#include "string.h"using namespace std;//int 变charvoid change(int num, char* str){ int p = 0; int tmp = num; while (tmp) { p++;...原创 2021-04-23 10:11:35 · 582 阅读 · 0 评论 -
C++xml文件操作 CMarkup学习方法说明
下载地址:https://download.youkuaiyun.com/download/qq_42095701/16679242修改源码: CMarkup xml; BOOL bLoadXml = false; bLoadXml = xml.Load(L"SamFirm.xml"); if (bLoadXml) { CString strUserID = _T(""); xml.ResetMainPos(); xml.FindElem(); xml.IntoElem(); w原创 2021-04-15 09:42:30 · 393 阅读 · 0 评论 -
C++ 主程序中打开子程序窗口隐藏,操作控件 遍历窗口控件句柄EnumChildWindows();获取其他程序进度条数据 操作选择框 按钮点击
1.线程启动子程序 system_hide(L"Odin3.exe",SW_SHOW /*SW_HIDE*/); //SHOW是显示 HIDE是隐藏 unsigned int tid = 0; HANDLE handle = (HANDLE)_beginthreadex(NULL, 0, FindWindowsThread, this, 0, &tid); CloseHandle(handle);2.EnumWindows函数(winuser.h)通过将句柄传递给每个窗口,原创 2021-04-09 10:59:10 · 4075 阅读 · 0 评论 -
Sciter 排序操作
//文件名排序function LittleStrArrSort(a,b) //小到大{ a = a.FileName.toUpperCase(); b = b.FileName.toUpperCase(); if(a<b) { // stdout.println("大于 a: "+a+" b:"+b); return -1; } // else // { // // stdout.println("小于 a: "+a+" b:"+b); // return 1.原创 2021-02-03 15:44:29 · 205 阅读 · 0 评论 -
C语言 运算符
A = 0011 1100B = 0000 1101-----------------A = 0011 1100B = 0000 1101 A&B = 0000 1100 相同不变 不同为0A = 0011 1100B = 0000 1101 A|B = 0011 1101 相同不同都为1 0为0 A = 0011 1100B = 0000 1101 A^B = 0011 0001 相同为0 不同为1 A = 0011 110...原创 2021-01-28 10:11:41 · 219 阅读 · 0 评论 -
CString 打印只打印出一个字符
打印日志遇到个无法查到的问题.每次打印只打印首字符 CString strStartupLog = StartupLog.to_string().c_str();printf(" Startup Log %s", strStartupLog );查到原因是有多个字符集.CString 是宽字符的需要转一下单字符 CString strStartupLog = StartupLog.to_string().c_str(); CStringA strA; strA =...原创 2021-01-13 17:33:13 · 782 阅读 · 0 评论 -
逆向-注入步骤代码 植物大战僵尸注入代码安放植物HOOK汇编代码
//获取窗口句柄DWORD CMFCApplication1Dlg::GetWindows(CString Filename){ HWND hWnd = ::FindWindow(NULL, Filename.GetBuffer()); if (!hWnd) { MessageBox(L"没有窗口",NULL,0); return 0; } DWORD dWid = 0; GetWindowThreadProcessId(h...原创 2021-01-04 14:06:50 · 1446 阅读 · 1 评论 -
逆向-提权操作函数
程序启动调用防止程序权限不够//提权函数bool CMFCApplication1Dlg::enableDugPriv(){ HANDLE hToken; LUID sedebugnamevalue; TOKEN_PRIVILEGES tkp; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { ...原创 2021-01-04 13:40:17 · 159 阅读 · 0 评论 -
各类文件文件头数据
HEX 文件头与拓展名对应一览表Huzpsb扩展名 文件头标识( HEX ) 文件描述123 00 00 1A 00 05 10 04 Lotus 1-2-3 spreadsheet (v9) file3gg; 3gp; 3g2 00 00 00 nn 66 74 79 70 33 67703rd Generation Partnership Project 3GPP(nn=0x14) and 3GPP2 (nn=0x20)multimedia files7z 37 7A BC AF 2.原创 2020-12-31 10:59:34 · 1664 阅读 · 0 评论 -
MFC 打开另外一个窗口 ShellExecuteEx 使用
SHELLEXECUTEINFO ShExecInfo; CString path_2 = L""; TCHAR _szPath[MAX_PATH + 1] = { 0 }; BOOL RetErorr = GetModuleFileName(NULL, _szPath, MAX_PATH); int error = GetLastError(); if (!RetErorr) { g_XdySimpleLog.LogLess("Get P...原创 2020-11-17 17:39:45 · 453 阅读 · 1 评论 -
JS 递归操作代码例子
function InsertIntoTree(param,node,level) //递归遍历存储数据{ var iFind = param.indexOf('\\'); var vName = param; var vPath = ""; if(level<1) { return; } level--; if(iFind>0) { vPath = param; vNam...原创 2020-09-15 15:40:46 · 257 阅读 · 0 评论 -
系统diskPart 操作命令函数
void CreateNewPartition(const int diskNumber,const ULONGLONG ullOffset, const ULONGLONG ullSize,const int partType, TCHAR tcVolume, const ULONGLONG ExtensionSize){ CStringA strACmd; MyRunCmd mrc; MainFrame* pMainFrame = (MainFrame*)g_MainFra...原创 2020-08-01 08:32:24 · 449 阅读 · 1 评论 -
VS 编译出现 E1696 无法打开源文件“afxwin.h”
首先需要安装“用于 x86 和 x64 的 Visual C++ MFC”;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\sharedC:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrtC:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\umC:\Program Files (原创 2020-07-29 09:35:20 · 11743 阅读 · 0 评论 -
Sciter JS函数操作两个不一样的数组去掉重复的剩下唯一
//两个不一样的数组去掉重复的//DriveNameArr[i] ------ = C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z//DriveNameArr[i] ------ = E,D,F,C,G,I,H function array_diff(a, b) { a = JSON.parse(JSON.stringify(a)) b = JSON.parse(JSON.stringif...原创 2020-07-15 16:58:01 · 273 阅读 · 0 评论 -
error C1189: #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared
修改运行库,解决原创 2020-05-29 16:13:56 · 551 阅读 · 0 评论 -
C++ 注入器制作步骤
#include <T1Help32.h>//宏定义进程名字#define GET_NAME "WeChat.exe"void GetProcessName(); //声明获取PID进程函数DWORD ProcessNamePID(LPCSTR ProcessName){ 1.获得整个进程快照准备比对 HANDLE ProcessAll = Cre...原创 2020-04-16 22:50:50 · 1451 阅读 · 0 评论 -
C++ 逆向教程注入读取内存实例 使用模拟点击函数实现一秒扫雷 9
void CLesson20Dlg::OnBnClickedButton5(){ // TODO: 在此添加控件通知处理程序代码 DWORD pid; HWND hWnd = ::FindWindow(NULL,_T("扫雷")); //获取游戏的窗口句柄 if( NULL == hWnd ) { ::MessageBox(NULL,_T...原创 2020-04-14 10:42:34 · 863 阅读 · 6 评论 -
C++ 逆向辅助学习----汇编基础 OD调试教程 快捷键 8
WIN32汇编与反汇编环境:VS2010 + WIN7 64 一、全局变量赋值的汇编形式 1.OllyDbg简介 是汇编级的调试器,我们用的VS是源码级的。 反汇编窗口:显示被调试程序的反汇编代码(地址栏、HEX数据栏、汇编指令栏、注释栏) 寄存器窗口:显示当前所选线程的CPU寄存器的内容 信息窗口...原创 2020-04-14 10:42:19 · 1190 阅读 · 0 评论 -
C++ 逆向辅助学习----汇编基础 指令集合所有指令 7
九、汇编减法指令sub 1.sun指令 减法指令sub(subtract) 格式: sub 操作数A,操作数B A = A-B 功能:两个操作数的相减,即从A中减去B,其结果放在A中 ZF零标志位:若当前的运算结果为零,则ZF为1,否则为0 注意:SUB指令影响ZF标志位 十、CMP...原创 2020-04-11 11:59:50 · 1287 阅读 · 0 评论 -
C++ 逆向辅助学习----汇编基础 标志寄存器 6
标志寄存器 1. ZF标志 (1)flag的第6位是ZF,零标志位。 它记录相关指令执行后, 结果为0 , ZF = 1 结果不为0,ZF = 0 比如: mov ax,1 sub ax,1 ...原创 2020-04-11 11:56:01 · 234 阅读 · 0 评论 -
C++ 逆向辅助学习----汇编基础 学习指令集原理与call原理跟使用 5
[bx]和loop指令 1.[bx]和内存单元的描述 1.1 [bx]是什么呢? 和[0]有些类似,[0]表示内存单元,它的偏移地址是0。 1.2 我们要完整地描述一个内存单元,需要两种信息: (1)内存单元的地址; (2)内存单元的长度(类型)。 我们用[0]...原创 2020-04-11 11:55:01 · 801 阅读 · 0 评论 -
C++ 逆向辅助学习----汇编基础 汇编程序 4
汇编程序 1.一个源程序从写出到执行的过程 一个汇编语言程序从写出到最终执行的简要过程: 编写-->编译-->链接-->执行 2.可执行文件 可执行文件中包含两部分内容: - 程序(从原程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据) - 相关的...原创 2020-04-11 11:53:21 · 274 阅读 · 0 评论 -
C++ 逆向辅助学习----汇编基础 寄存器(内存访问) 3
寄存器(内存访问) 1.1 内存中字的存储 20000 0x4E 20 a) Little - Endian (小端)就是低位字节放在内存的低地址端,高位字节放在内存的高地址端 b) Big - Endian (大端)就是高位字节放在内存的低地址端,低位字节放在内存的高地址端...原创 2020-04-11 11:51:49 · 521 阅读 · 0 评论 -
C++ 逆向辅助学习----汇编基础 寄存器 2
寄存器(CPU工作原理) 1.CPU概述 1.1 一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。 1.2 内部总线实现CPU内部各个器件之间的联系。 1.3 外部总线实现CPU和主板上其它器件的联系。 2. 寄存器的概述 2.1 8086CP...原创 2020-04-11 11:50:36 · 304 阅读 · 0 评论