C++
蓦然回首时已逝
这个作者很懒,什么都没留下…
展开
-
VC基本功能汇总
获取当前应用路径CString GetAppPath(){ WCHAR buf[MAX_PATH] = { 0 }; ::GetModuleFileName(NULL, buf, MAX_PATH * sizeof(WCHAR)); CString s = CString(buf); int pos = s.ReverseFind('\\'); if (-1 != pos) { s = s.Mid(0, pos); } return s;}分割CStringv...原创 2021-03-20 10:26:40 · 179 阅读 · 0 评论 -
GDI+图像旋转
Gdiplus::Graphics *pGraphics = Gdiplus::Graphics::FromHDC(m_memDC.GetSafeHdc()); Gdiplus::Matrix mat;Gdiplus::PointF centerPos(imageWidth / 2.0, imageHeight / 2.0); mat.RotateAt(angle, centerPos); pGraphics->SetTransform(&mat); ...原创 2021-03-11 19:17:44 · 755 阅读 · 1 评论 -
[c++]Gdi+初始化
#include "gdiplus.h"#pragma comment( lib, "gdiplus.lib" )using namespace Gdiplus;ULONG_PTR g_gdiplusToken = 0;voidInit(){ if (0 == g_gdiplusToken) { Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&g_gdiplusT..原创 2021-02-24 08:02:03 · 205 阅读 · 0 评论 -
cmake编译C++工程到webassembly(windows)
一、安装webassembly开发环境 参考:https://www.jianshu.com/p/fdf74aad806b二、使用Cmake工具。 1、设置工程目录和生成目标目录 2、点击configure按钮。弹出的对话框配置如下:3、点击Next之后,如下:这个工具链文件就在第一步安装的开发环境中,文件名为Emscripten.cmake,在这个文件中有以下使用说明:# To use this toolchain file with CMake, ...原创 2020-09-25 14:27:10 · 2133 阅读 · 0 评论 -
C++11常用新特性快速一览
最近工作中,遇到一些问题,使用C++11实现起来会更加方便,而线上的生产环境还不支持C++11,于是决定新年开工后,在组内把C++11推广开来,整理以下文档,方便自己查阅,也方便同事快速上手。(对于异步编程十分实用的Future/Promise以及智能指针等,将不做整理介绍,组内使用的框架已经支持并广泛使用了,用的是自己公司参考boost实现的版本)1. nullptrnullptr 出现的目的是为了替代 NULL。在某种意义上来说,传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器转载 2020-06-29 16:53:35 · 145 阅读 · 0 评论 -
从4行代码看右值引用
从4行代码看右值引用概述 右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的:int i = 0;int& j = i; 这里的int&是对左值进行绑定(但是int&却不能绑定右值),相应的,对右值进行绑定的引用就是右值引用,他的语法是这样的A&&,通过双引号来表示绑定类型为A的右值。通过&&我们就可以很方便的绑定右值了,比如我们可以这样绑定一个右值:转载 2020-06-29 14:35:01 · 123 阅读 · 0 评论 -
将DCM文件保存成BMP文件或数据流
DCMTK开源库的学习笔记1:将DCM文件保存成BMP文件或数据流(即数组)DCMTK开源库介绍:DCMTK是目前最全面实现DICOM3.0标准的开源库,通过结合DCMTK开源库和CxImage图像开源库,能够很方便的开发属于自己的DCM文件编辑浏览软件。DCMTK与CxImage的结合:下面记录”DCM文件到BMP文件格式的转换“的学习和探索的过程。...转载 2020-03-16 11:55:25 · 871 阅读 · 0 评论 -
网络连接的获取,禁用,启用(VC++)
MFC工程下使用方式:#include <NetCon.h>void OnNetTest(){ INetConnectionManager *pNetManager; INetConnection *pNetConnection; IEnumNetConnection *pEnum; do { CoInitialize(...原创 2019-05-07 09:07:30 · 2335 阅读 · 1 评论 -
获取被占用的端口号(C++)
#include <algorithm>#include "iphlpapi.h"#pragma comment(lib, "Iphlpapi.lib")vector<unsigned short> GetAllUsedTcpPort(){ std::vector<unsigned short> result; ULONG size...原创 2019-12-11 09:17:41 · 1373 阅读 · 0 评论 -
简单windows共享内存封装类
在维护公司的一个项目的时候发现了一个共享内存类,看了一下注释,发现是chrome里头的代码,所以就把chrome的代码翻出来看了一个,果然写的不错,考虑的情况也确实比较多,想想之前看过了《windows核心编程》这本书也有讲,所以就把书中的相关章节又看了一遍,写这篇文章就算是一个总结吧先上代码:#include <Windows.h>#include <string&g...转载 2019-10-09 14:23:21 · 334 阅读 · 0 评论 -
win10 在桌面图标下显示窗体(C++)
直接上代码,只需要将窗体的Parent设置为这个函数的返回值即可。HWND FindDTWindow(){ HWND hWnd = ::FindWindow(_T("Progman"), _T("Program Manager")); DWORD dResult = 0; SendMessageTimeout(hWnd, 0x052C, ...原创 2019-03-06 09:44:35 · 1241 阅读 · 0 评论 -
C++ 线程的创建
unsigned int WINAPI ThreadProc(LPVOID pParam){ CString s; for (int i = 0; i < 100; i++) { s.Format(L"Loop %d finished\r\n", i); OutputDebugString(s); } ...原创 2019-09-29 15:18:16 · 283 阅读 · 0 评论 -
char* 与 wchar_t*相互转换
bool WToAnsiChar(wchar_t *pSrcWchar, char **pOut, int &outLen){ bool bre = false; if (NULL != pSrcWchar) { outLen = ::WideCharToMultiByte(CP_ACP, 0, pSrcWchar, -1, NULL, 0, NULL, NULL); ...原创 2019-07-11 15:17:19 · 1933 阅读 · 0 评论 -
多线程使用
DWORD WINAPI ThreadProc(LPVOID pParam){ CString s; s.Format(L"Thread %d finished\r\n", pParam); OutputDebugString(s); return 0; // thread completed successfully}const int num ...原创 2019-07-25 10:27:36 · 174 阅读 · 0 评论 -
C++ 内存泄漏检测方法
在代码文件头中增加如下定义,在Debug模式下退出时,会提示内存泄漏的位置。#defineCHECK_MEMORY_LEAKS#ifdef CHECK_MEMORY_LEAKS#define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include <crtdbg.h>#define new new(_NORMAL_BLOC...原创 2019-08-29 15:22:30 · 193 阅读 · 0 评论