
VC++
VC++
墨痕诉清风
始于情,行于心。
展开
-
查看当前主机最近文件(反沙箱)
系统通过消息映射 ON_COMMAND_EX_RANGE(ID_FILE_MRU_FILE1, ID_FILE_MRU_FILE16, OnOpenRecentFile)命令更新机制根据ON_UPDATE_COMMAND_UI(ID_FILE_MRU_FILE1, OnUpdateRecentFileMenu)将经常调用到。MFC建立的标准框架程序中有记录最近操作文件的能力,这些最近文件的路径被记录到注册表,在程序运行时,又将添加到文件菜单中。②记录的保存、CRecentFileList的销毁。原创 2023-02-20 18:25:28 · 461 阅读 · 0 评论 -
Detours的作用和实例(hook、钩子)
Detours 可以用来拦截Win32的API函数,从而让程序按照我们自定义的方式进行处理,而不是Windows默认的。Detours 也是通过Dll的方式,拦截Api函数。为什么是修改API的前5个字节? 现在NewCode[]里的指令相当于Jmp MyMessageBoxW 既然已经获取到了Jmp MyMessageBoxW 现在该是将Jmp MyMessageBoxW写入原API入口前5个字节的时候了 //知道为什么是5个字节吗? //Jmp指令相当于0xe9,占一个字节...原创 2021-11-04 16:48:02 · 1287 阅读 · 0 评论 -
C++调用WMI类查询获取操作系统名(实例)
#define _WIN32_DCOM#include <iostream>#include <comdef.h>#include <Wbemidl.h>using namespace std;#pragma comment(lib, "wbemuuid.lib")int main(int argc, char **argv){ HRESULT hres; // 第一步:初始化COM hres = CoInitializeE.原创 2021-08-06 15:11:34 · 854 阅读 · 0 评论 -
VS设置程序启动权限为管理员权限
右键项目,属性–>链接器–>清单文件–>UAC执行级别–>requireAdministrator (/level=‘requireAdministrator’)原创 2020-12-17 19:09:26 · 2091 阅读 · 0 评论 -
VC打包程序,并修改注册表(详细以后补充)
1. 文件-> 新建 ->项目 -> 确定2. 右键菜单-> 视图 -> 文件系统3. 右键"应用程序文件夹" -> 添加 -> 文件(注意目录结构)-> 选择打包的文件夹下所有文件4. 添加注册表,右键菜单-> 视图 -> 注册表 以下为实例,功能为浏览器打开:浏览器输入 "abc://"即可打开程序 注册表中的默认值既为空 ...原创 2020-07-22 19:03:30 · 972 阅读 · 1 评论 -
VC++扫描获取局域网活动IP
【代码】VC扫描局域网内所有登陆电脑的IP。原创 2020-04-23 14:43:03 · 1245 阅读 · 0 评论 -
VC++ CString互转double
double ddistance = 11.1111;CString strTemp = "";strTemp.Format("%.3f", ddistance);ddistance = _ttof(strTemp);原创 2020-03-28 17:46:32 · 1251 阅读 · 2 评论 -
VC++中实现INI文件读写的方法和示例
【代码】VC++中实现INI文件读写的方法和示例。原创 2020-01-04 15:35:33 · 1283 阅读 · 0 评论 -
VC++CopyFile函数的用法
便可将a.txt文件复制到b.txt文件,第三个参数表示:如果目标已经存在,不拷贝(True)并返回False,覆盖目标(false);若文件路径为string类型变量,例如为pathstr,则需使用pathstr.c_str()转换即可;CopyFile函数定义在Windows.h中,使用时要include之;原创 2019-12-17 18:09:17 · 2731 阅读 · 0 评论 -
VC++调试win32设置参数
原创 2019-12-17 17:16:53 · 497 阅读 · 0 评论 -
安装visual studio code(VS Code)并修改为中文
下载地址:https://code.visualstudio.com/修改为中文:1. 安装完Visual Studio Code后,打开Visual Studio Code。2.按住Ctrl + Shift + X,在左侧“扩展”视图文本框中输入“Language Packs”,点击你所需要的语言,这里我们安装的是中文简体。3. 点击绿色install安装,完成...原创 2019-11-29 10:14:40 · 683 阅读 · 0 评论 -
VS 多进程调试(C#和C )
首先启动进程。再C#中打对应断点。选择附加进程找到该C#进程附加完成原创 2019-10-13 22:23:44 · 638 阅读 · 0 评论 -
visual studio运行时库MT、MTd、MD、MDd 的区别
对于MT/MTd,由于连接运行时库是LIBCMT.lib/LIBCMTD.lib,这两个库是静态库,所以此种方式编译的程序,移到另一台机器上面也可以正常运行。但是对于MD/MDd,连接的是动态库,所以如果另一台机器上没有MSVCRT.dll/MSVCRTD.dll时,就提示缺少动态库这样的错误。:MT+DLL,多线程动态库,连接MSVCRT.lib库,这是个导入库,对应动态库为MSVCRT.dll。:mutithread+debug,多线程调试版,连接LIBMITD.lib库。原创 2019-02-21 13:10:04 · 1148 阅读 · 0 评论 -
CFileDialog获取文件与文件夹路径
1. 文件路径CFileDialog dlg(TRUE, L"avi", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, L"(*.avi;*.mp4;*.wmv;*.asm)|*.avi;*.mp4;*.wmv;*.asm||");if (dlg.DoModal() == IDOK){ CString str_path = dlg.G...原创 2019-01-22 15:47:02 · 3603 阅读 · 0 评论 -
VC++动态库封装及调用
在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中相应函数代码的地址,从而节省了内存资源。一般的动态库程序有lib文件和dll文件,lib文件是编译时期连接到应用程序中的,而dll文件是运行时才会被调用的。使用静态编译的lib文件,在运行程序时不需要再挂动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性,发布新版本时要发布新的应用程序才行。在编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载DLL,访问DLL中导出的函数。原创 2018-12-10 18:22:30 · 3801 阅读 · 0 评论 -
VC++ 多线程同步实例
test.hclass{public: static DWORD WINAPI DoScanRdpWeakPwdProcess(LPVOID lpParam);}test.cpp函数(){ HANDLE thread_listening_rdp = CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)CScanWeak...原创 2018-12-08 20:46:14 · 1847 阅读 · 0 评论 -
C++ WINDOWS下 wchar_t *和char * 相互转化总结篇
说道wchar_t和char两个类型大家都不会陌生wchar_t:在windows下是Unicode 16编码,也就是俗称宽字节char:当然就是指一个字节,在windows下面默认是gbk编码的所以在windows 下 wchar_t 转 char也就是编码转化直接贴出wchar_t *字符串和char *字符串的集中互转方法方法一:利用Windows的宏W2A,A2W ...原创 2018-12-08 16:01:53 · 806 阅读 · 1 评论 -
VS中CString与char型数组相互转换问题
1. char str[]="hello"; CString cstr; cstr.Format(str); 2. char str[100]; LPSTR p; CString cstr="hello"; p=cstr.getbuffer(); strcpy(str,p);原创 2018-12-08 15:57:05 · 3612 阅读 · 0 评论 -
VC++ 强杀线程
TerminateThread((HANDLE)m_threadHandle, EXIT_FAILURE);原创 2018-12-08 14:52:14 · 954 阅读 · 0 评论 -
VS++ 管道进程获取CMD返回值
int ExecDosCmdRet(CString strCmd, CString& strResult){ SECURITY_ATTRIBUTES sa; HANDLE hRead, hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHan...原创 2018-12-07 10:03:08 · 719 阅读 · 0 评论 -
C/C++ 按行读取文件
1. 当linux上的代码读取Windows文件格式时, 读取结果的每行都会多一个\r, 想想为什么。结果, 2.txt和1.txt中的内容完全一致,你可以用Beyond Compare比较一下,我比较过了。2. 当Windows上的代码读取linux格式文件时, 读取的结果会显示只有一行, 想想为什么。本文代码都在Windows/VC++6.0下测试过, 在linux/g++下也没有问题。当然了,上述程序只能针对文本文件(不仅仅是.txt),对其它类型的文件,不适合。这样, 我们就是整行读取了。原创 2018-12-06 14:02:41 · 11977 阅读 · 0 评论 -
c++ STL
C++ vector和list的区别vector:能高效的进行随机存取,时间复杂度为o(1)list:由于链表的特点,能高效地进行插入和删除如果需要高效的随机存取,而不在乎插入和删除的效率,使用vector;如果需要大量的插入和删除,而不关心随机存取,则应使用list。vector1. 头文件#include<vector>2. vector声明...原创 2018-12-06 11:55:14 · 543 阅读 · 0 评论 -
VS写文件
FILE* fp = fopen(strFileNameDes.c_str(), "w");string strFourBlanks = " ";string strEightBlanks = " ";fprintf(fp,"%s\n", "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>&quo原创 2018-12-05 18:44:32 · 1042 阅读 · 0 评论 -
VS 字符串 ASSIC Unicode UTF-8转换
wchar_t* 转char*USES_CONVERSION;char* cRdpIPPath = W2A(cwRdpIPPath);CString Utf8ToLocal(const char* utf8Str){ CString strLocal = _T(""); if (utf8Str == NULL) { return strLo...原创 2018-11-17 19:07:52 · 1110 阅读 · 0 评论 -
windows 进程执行cmd
CString writeDrive = CConfigureInfoMgr::instance()->GetWriteDrive(); STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.dwFlags = STARTF_...原创 2018-11-15 19:08:20 · 569 阅读 · 0 评论 -
基于visual c++之windows核心编程代码分析(30)Telnet协议编程
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务...原创 2018-08-08 15:10:54 · 1457 阅读 · 1 评论 -
C++ windows 播放MP3音乐
先包含头文件#include<Vfw.H>在项目属性->配置属性->Linker->Input->AdditionalDependencies写入VFW32.libHWNDhMCI;CStringchoose=_T("E:\\MyDocument\\Music\\1.mp3");//音乐文件的路径hMCI=MCIWndCreate(N...原创 2018-06-28 11:50:55 · 1201 阅读 · 1 评论 -
C++ 注册表操作
HKEY hKey = nullptr;if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\services\\NetBT\\Parameters"), 0, KEY_WRITE, &hKey)){ AfxMessageBox(L"打开注册表失败"); retu...原创 2018-06-27 16:35:59 · 250 阅读 · 1 评论 -
MFC静态文本超链件
#pragma once#include "afxwin.h"class CHyperLink:public CStatic{ DECLARE_DYNAMIC(CHyperLink) public: CHyperLink(); virtual ~CHyperLink();public: void SetURL(CString strURL); CString GetURL...原创 2018-06-27 10:49:51 · 266 阅读 · 1 评论 -
获取windows所有端口
system("netstat -na >netstat.txt");原创 2018-06-26 17:32:12 · 1094 阅读 · 0 评论 -
C++ windows获取系统补丁+匿名管道
void CSstemPatchDlg::OnBnClickedOk(){// TODO: 在此添加控件通知处理程序代码// TODO: Add extra validation hereSECURITY_ATTRIBUTES sa;HANDLE hRead, hWrite;sa.nLength = sizeof(SECURITY_ATTRIBUTES);sa.lpSecuri...原创 2018-06-26 17:31:38 · 961 阅读 · 1 评论 -
C++枚举文件夹
void EnumDirectoryFiles(const CString& dirPath, const CString& fileExt, vector<CString>& fileVector){ WIN32_FIND_DATA findFileData; CString targetDir; fileVector.clear(...原创 2018-06-07 16:17:33 · 2118 阅读 · 1 评论 -
C 语言的io流
写入: CString strCMD = L“E:\CompressionRar\CompressionRar\Bin\Release\abc.txt”; USES_CONVERSION; std::string strFptxt(W2A(strCMD)); FILE *fp=fopen(strTextPath.c_str(), "at"); fprin...原创 2018-05-30 15:20:42 · 1124 阅读 · 1 评论 -
VS++ 获取进程路径
CString strLocalPath;CString strFileName;GetModuleFileName(NULL, strLocalPath.GetBufferSetLength(MAX_PATH + 1), MAX_PATH + 1);PathRemoveFileSpec(strIsLocalPath);int nPos = strLocalPath.ReverseFi...原创 2018-05-30 15:19:53 · 711 阅读 · 0 评论 -
VC++杀死进程
杀死单进程BOOL KillProcessFromName(CString strProcessName){ //创建进程快照(TH32CS_SNAPPROCESS表示创建所有进程的快照) HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //PROCESSENTRY32...原创 2018-05-29 15:50:41 · 721 阅读 · 1 评论