基础
qq76211822
这个作者很懒,什么都没留下…
展开
-
windows 屏幕录像
【代码】windows 屏幕录像。原创 2024-09-04 15:26:20 · 119 阅读 · 0 评论 -
windows Tcp Client 自动重连封装
【代码】windows Tcp Client 自动重连封装。原创 2024-08-28 18:26:08 · 136 阅读 · 1 评论 -
windows mfc webview2 接收html信息
本地文件路径:file:///C:/Users/76211/Desktop/a.html。C++中要想接收消息,必须注册一个WebMessageReceived事件,方法向C++发送消息,代码如下。原创 2024-08-22 15:46:39 · 427 阅读 · 0 评论 -
windows vs2022 MFC使用webview2嵌入网页
Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。WebView2 控件使用 Microsoft Edge 作为绘制引擎,以在本机应用中显示 web 内容。原创 2024-08-21 11:34:33 · 550 阅读 · 0 评论 -
windows fopen 中文路径失败问题之解决
使用 _wfopen。原创 2024-08-12 20:37:29 · 134 阅读 · 0 评论 -
windows unicode、ansi、utf8转换
【代码】windows unicode、ansi、utf8转换。原创 2024-05-13 10:55:29 · 131 阅读 · 0 评论 -
Windbg 分析程序死锁小结
当应用程序挂死后,使用windbg Attach到进程。1. 使用 ~*kb,查看堆栈信息8 Id: 368.bd4 Suspend: 1 Teb: 7ffd6000 Unfrozen ChildEBP RetAddr Args to Child 0614fd4c 7c92df5a 7c939b23 00000604 00000000 ntdll!KiFastSystemCallRet 0614fd50 7c939b23 00000604 00000000 000转载 2021-04-10 15:32:53 · 1238 阅读 · 0 评论 -
windbg “Bad symbols for NTDLL (error 3). Aborting. ”之解决方法
c:\symbols;SRV*c:\symbols* http://msdl.microsoft.com/download/symbols原创 2021-04-10 14:26:12 · 508 阅读 · 0 评论 -
windbg之经典死锁案例 及 相关命令
1先上死锁代码 如下:#include "stdafx.h"#include <mutex>#include <thread>#include <windows.h>// windows系统中 std::mutex内部是通过Event内核对象实现的,而不是CRITICAL_SECTIONstd::mutex mtx0;std::mutex mtx1;CRITICAL_SECTION cs0;CRITICAL_SECTION cs1;int..转载 2021-04-10 14:08:18 · 611 阅读 · 0 评论 -
windows 64位程序获取虚拟内存总结
1.32位进程获取的虚拟内存的最大数是4G。64位获取虚拟内存的最大数是140737488224256,换算成16进制是0x7FFFFFFE00002.双内存条机器调用api函数最好使用GlobalMemoryStatusEx3.64位的exe调用api函数最好使用GlobalMemoryStatusEx4.在cmd里面输入systeminfo可以查看虚拟内存、物理内存、处理器以及其他信息5.MEMORYSTATUSEX结构体的ullTotalPageFile成员变量对应虚拟内存的最大值原创 2021-04-08 09:51:25 · 976 阅读 · 0 评论 -
windows10 C++ 获取cpu使用率
一、定义#include <winternl.h>#include <Windows.h>typedef struct _UINT64_DELTA{ ULONG64 Value; ULONG64 Delta;} UINT64_DELTA, *PUINT64_DELTA;typedef struct _UINTPTR_DELTA{ ULONG_PTR Value; ULONG_PTR Delta;} UINTPTR_DELTA, *PUINTPTR_DE转载 2021-04-07 16:46:43 · 2796 阅读 · 4 评论 -
c++ 之模板 error LNK2001: unresolved external symbol
1.在模板的声明文件(.h)的最后一行#include ".cpp"//模板的实现文件2.在调用模板的文件在文件开头#include ".cpp"//模板的实现文件原创 2019-12-14 10:24:16 · 371 阅读 · 0 评论 -
C++ 滚动IE滚动条
CString StrPath = L"Frame Tab\\TabWindowClass\\Shell DocObject View\\Internet Explorer_Server"; HWND IEMain = ::FindWindow(L"IEFrame", NULL); HWND FrameTab = ::FindWindowEx(IEMain, NULL, L"Frame Tab原创 2017-06-14 09:45:31 · 378 阅读 · 0 评论 -
改变IE7及其以上版本缩放因子
// ConsoleApplication1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;#pragma comment(lib, "Advapi32.lib")int _tmain(int ar原创 2017-06-14 09:44:41 · 208 阅读 · 0 评论 -
通过COM获取microsoft help viewer2.0 的收藏列表
打开microsoft help viewer2.0,切换到favorites窗口。添加列表框,变量名为m_list1;在OnInitDialog里面添加: CListCtrl* lst1 = (CListCtrl*)GetDlgItem(IDC_LIST1); lst1->ModifyStyle( 0, LVS_REPORT ); // 报表模式 lst原创 2017-06-14 09:42:56 · 505 阅读 · 0 评论 -
COM 通过查找IE窗口切换IE选项卡
枚举不出隐藏的选项卡,只能枚举出显示出来的选项卡 HRESULT hRes; HWND MainIEWnd; HWND CommandBarWnd; HWND ReBarWnd; HWND TabBandWnd; HWND DirectUIWnd; BSTR tabCaption; long TabsCount=0,TabsReceived=0,newRes; IA原创 2017-06-14 09:41:47 · 525 阅读 · 0 评论 -
C++ 对文件夹的安全权限操作
// ConsoleApplication1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include #include #pragma comment(lib,"Advapi32.lib"原创 2017-06-14 09:35:53 · 3205 阅读 · 0 评论 -
C++ 不让计算机休眠
最近由于弄多串口下的多线程通信,有232口和USB转串口,当电脑进入睡眠状态,再次唤醒的时候电脑要加载USB转串口驱动,这样,其中一个线程总是得不得数据,下面是不让计算机进入睡眠的代码。在笔记本下应该获得注册表权限。台式机下面的注册表的键名和笔记本下的键名不一样。下面是台式机的。 #include "stdafx.h"#include #原创 2017-06-14 09:24:51 · 3323 阅读 · 0 评论 -
WINDOWS操作系统中可以允许最大的线程数
默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。 你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可以多开一些线程。 如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程。 即使物理内存再大,一个进程原创 2017-06-14 09:22:07 · 5020 阅读 · 0 评论 -
C++ 获取CPU使用率、内存使用率、磁盘空间等
CPUMemDiskStatus.h#ifndef __CPUMemDiskStatus_h__#define __CPUMemDiskStatus_h__//每个磁盘的状态typedef struct tagDISKSTATUS { DWORD _FreeAvalidToCaller; //用于容纳调用者可用的字节数量 BYTE DWORD _TotalNummber; /原创 2017-02-28 15:32:43 · 14240 阅读 · 5 评论 -
string 作为结构体成员变量之内存泄露
struct MyStruct{string s;};MyStruct st;memset(&st, 0, sizeof(MyStruct));每次memset,把string维护的指针弄没了。所以找不到之前的数据了,就导致内存泄露原创 2017-03-02 12:05:34 · 2011 阅读 · 0 评论 -
c++ opencv 入门
//类型定义CvPoint point(2, 3);CvPoint2D32f point1(2, 3);CvPoint3D32f point2(2, 3);CvSize size(2, 3);CvSize2D32f size1(2, 3);CvRect rect(0, 0, 50, 50);//mat使用float x[3][4] = {1, 2,原创 2015-08-03 22:06:18 · 924 阅读 · 0 评论 -
mfc 设置、清除列表框(CListctrl)行颜色
指定改变CListCtrl中某一行的颜色,比如说刚添加进去的一行,让它改变颜色,这样记录多了,容易看到自己刚刚加如的行,方便操作可查看,也可以让添加和修改的记录显示不一样的颜色,方便的多了,VC自带的没有这种功能。1.首先从CListCtrl 继承一个类,命名为CXListCtrl在头文件中加摸板CMap MapItemColor;好在这里查找你的修改的颜色。原创 2017-04-18 15:14:42 · 2613 阅读 · 2 评论 -
C++ 获取文件版本
static string GetFileVersion() { char FileName[MAX_PATH] = {0}; ::GetModuleFileName(NULL, FileName, sizeof(FileName) - 1); string asVer = ""; VS_FIXEDFILEINFO *pVsInfo; unsigned int iFileInfoSi原创 2017-05-03 10:17:49 · 1854 阅读 · 0 评论 -
MFC GDI+双缓冲
添加头文件#include #pragma comment(lib, "Gdiplus.lib")using namespace Gdiplus;定义变量:ULONG_PTR gdiplusToken; DWORD dwScreenWidth; DWORD dwScreenHeight;在OninitDialog()函数里面初始化对象Gdiplus::GdiplusSt原创 2017-05-08 10:32:20 · 751 阅读 · 1 评论 -
C++ 生成随机数
#include #include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ srand((unsigned)time(NULL)); //设置随即数生成器的种子 vectorvData; for (int i = 0; i < 10; i++){ vData.push_back(原创 2017-05-19 16:01:59 · 206 阅读 · 0 评论 -
string Replace
函数定义:string Replace(string& str, const string& strBefore, const string& strAfter){ string _strBefore = strBefore; string _strAfter = strAfter; if (str.empty() || _strBefore.empty()){ return st原创 2017-09-28 09:09:03 · 366 阅读 · 0 评论 -
c 转二进制
int nData = 1568;//转二进制 for (int i = sizeof(int) * 8; i >= 0; i--){ if ((nData >>i) & 1){ printf("%d", 1); } else{ printf("%d", 0); } } printf("\n");原创 2015-06-29 20:40:43 · 404 阅读 · 0 评论 -
windows C++ 解决Office打开文件提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致”
一、手动修改注册表解决:1、打开注册表编辑器方法:开始 -> 运行 -> 输入regedit -> 确定2、找到注册表子项HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security3、在右侧空白处点击鼠标右键,选择“新建 -> DWORD值(D)”,输入“ExtensionHardening...原创 2019-05-07 16:17:11 · 8174 阅读 · 0 评论 -
windows C++ 启动其他进程
wchar_t wcPath[2048] = {0}; GetModuleFileNameW(NULL, wcPath, 2048); ::PathRemoveFileSpecW(wcPath); if(PathIsRootW(wcPath)){ wsprintf(wcPath + wcsle...原创 2018-07-31 18:38:15 · 2502 阅读 · 0 评论 -
windows C++ 串口通信基本代码
HANDLE hCom = CreateFile(L"\\\\.\\COM4", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hCom == INVALID_HANDLE_VALUE){ DWORD dwErr = GetLastError(); char cDa...原创 2018-06-20 10:04:40 · 4129 阅读 · 0 评论 -
C++ opengl 部分代码解释
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "glm/glm.hpp"#include "glm/gtc/matrix_transform.hpp"#include "GL/glew.h"#include "glfw/glfw3.h"#include "shader.hpp"#include <windows...原创 2018-04-13 15:22:59 · 691 阅读 · 0 评论 -
Centos7 遍历目录
void Enum_Folder(const string& strFolder, vector<string*>& vFileList){ DIR* dirptr = opendir(strFolder.c_str()); if(dirptr){ while(true){ struct dirent *entr...原创 2018-03-22 19:17:54 · 1399 阅读 · 0 评论 -
C语言 top N问题之返回前面几个最大值的位置以及值
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>#include <algorithm>#include <vector>#include <time.h>using namespace std;#define MA...原创 2018-03-22 15:58:27 · 1474 阅读 · 0 评论 -
MFC 绘制对话框背景,不绘制子控件
最近搞摄像机采集图像,从摄像机采集图像后,显示在背景上,但是界面上的其它控件被覆盖了,所以需要解决。解决方法:在资源上勾上了Clip children,那么父窗口刷新的话,就不会去刷新子窗口的区域了原创 2017-11-27 11:55:46 · 458 阅读 · 0 评论 -
Md5
头文件:#ifndef __MD5__#define __MD5__#include using namespace std;string GetMd5(const string& str);#endif.cpp#include "StdAfx.h"#include "Md5.h"#include typedef struct { unsigned int s原创 2017-10-16 15:16:02 · 438 阅读 · 0 评论 -
c++ 获取文件修改时间
SYSTEMTIME OnTime64toSystemTime(__time64_t& itime){ struct tm *temptm = _localtime64(&itime); SYSTEMTIME st = {1900 + temptm->tm_year, 1 + temptm->tm_mon, temptm->tm_wday, temptm->tm_mday,原创 2017-09-28 14:43:26 · 5213 阅读 · 3 评论 -
static
一、使用 static 成员而不是全局对象有三个优点。 1. static 成员的名字是在类的作用域中,因此可以避免与其他类的成员或全局对象名字冲突。 2. 可以实施封装。static 成员可以是私有成员,而全局对象不可以。 3. 通过阅读程序容易看出 static 成员是与特定类关联的。 这种可见性可清晰地显示程序员的意图。二、static 成员是类的组成部分但原创 2014-10-17 20:09:11 · 410 阅读 · 0 评论 -
C++ 模板笔记
1.函数模板可以用与非模板函数一样的方式声明为 inline。说明符放在模板形参表之后、返回类型之前,不能放在关键字 template 之前。template inline T min(const T&, const T&);2.模板形参的名字可以在声明为模板形参之后直到模板声明或定义的末尾处使用。模板形参遵循常规名字屏蔽规则。与全局作用域中声明的对象、函数或类型同名的模板形原创 2015-06-10 22:53:32 · 388 阅读 · 0 评论 -
c++ 模板练习2
#include "stdafx.h"#include using namespace std;templateclass MyClass{public: MyClass(); ~MyClass(); T &Get(const T&);private:};MyClass::MyClass(){}MyClass::~MyClass(){}int & MyC原创 2015-06-14 11:47:34 · 499 阅读 · 0 评论