c++
杨宗卫的爸爸
开发十于年,从事c++,c等开发,参与过多个项目。虚心学习,认真求教。(杨宗卫的父亲)。
展开
-
windows ffmpeg mysys2 编译
ffmpeg windows mysys2编译过程原创 2023-02-28 16:35:34 · 322 阅读 · 0 评论 -
win32 ini 读取所有section 下边的key value
win32 ini section 遍历原创 2023-01-16 14:41:44 · 189 阅读 · 0 评论 -
c++ ini 改造
排名第一,但有个问题,就是GetKeys枚举出来的结果是排序的,这个很不友好。fifo_map.hpp是不排序c++ map结构。好了,现在运行后,就不会有 排序的问题了。这两天在用ini文件,原创 2022-09-29 14:56:50 · 377 阅读 · 0 评论 -
weak_ptr 检测类对象是否存在
【代码】weak_ptr 检测类对象是否存在。原创 2022-09-29 14:06:02 · 160 阅读 · 0 评论 -
vs2019 pybind11 生成linux可以使用的扩展库
pybind11扩展库非常强大,如何用vs2019生成工程,这样就可以避免使用cmake来在linux上边生成工程文件了。 A. linux上边的工作 下载pybind11只要下载不需要编译,网上很我文章要编译,实际上只要里边的头文件就可以,根本不需要编译,我就下载到了 ~/pybind11目录下边了 pip install pytest anaconda3安装 python3.8 B. windows下边的操作 1...原创 2021-06-22 13:06:34 · 489 阅读 · 0 评论 -
protobuf gzip压缩 解压缩的使用方法
#include <google/protobuf/io/gzip_stream.h>#include <google/protobuf/io/zero_copy_stream_impl.h>std::string output;// 压缩序列化google::protobuf::io::GzipOutputStream::Options options;options.format = google::protobuf::io::GzipOutputStream::GZ.转载 2021-06-09 15:41:21 · 1490 阅读 · 1 评论 -
ppl timer 测试
ppl里边可以直接使用timer并且是c++风格的,很好用:// testTimer.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <agents.h>#include <iostream>#include <ppl.h>#include <concrtrm.h>using namespace Concurrency;using namespace std;// Simulat.原创 2021-03-01 13:06:12 · 418 阅读 · 0 评论 -
不会崩溃的trace
printf有个问题当我们不小心用错参数就会产生崩溃,怎么办呢,用下边的代码就不会产生崩溃了1.下载tinyformat2.加入#define MAKE_ERROR_FUNC(n) \ template<TINYFORMAT_ARGTYPES(n)> \ void mytrace(int code, const char原创 2021-02-04 14:47:57 · 163 阅读 · 0 评论 -
share_ptr 通过 sendmessage 或 postmessage传递
class base{public: virtual int Exec() = 0; virtual string name() = 0;};class cmdbase:public base{public: virtual int Exec(){ printf("cmdbase..."); return 0; } virtual string name() { return "cmdbase"; }public: int m_count;};clas.原创 2020-10-29 16:22:56 · 454 阅读 · 1 评论 -
c++ 流写读文件容易发生的错误
c++流读写时的好文章http://courses.cs.vt.edu/cs2604/fall01/binio.html用c++流读取文件发生错误,如果没有判断就会发生崩溃。#include <iostream>#include <fstream>void mytest(){ char buffer[100]; std::ifstream myFile ("d:\\test.bat", std::iostream::binary); // 如果.原创 2020-09-25 10:20:13 · 1044 阅读 · 0 评论 -
win32 里边 判断系统64位,编译32位下运行程序
我们经常会遇到在系统是64位,编译在32位下进行写代码,下边给出例子:// 这个函数只在32位下边才进行调用void SetExceptionPolicy(){ BOOL os64 = FALSE; // 判断系统是64位,还是32位 SYSTEM_INFO si; GetNativeSystemInfo(&si); // Display the contents of the SYSTEM_INFO structure. TRACE("si.wProcessorArchit原创 2020-09-22 14:27:10 · 398 阅读 · 0 评论 -
windows 路径 常用函数使用 UTF8-ascii ascii-UTF8 串转换
char buffer[MAX_PATH]; GetModuleFileNameA( NULL, buffer, MAX_PATH ); PathRemoveFileSpecA(buffer); // c: d: 和后边路径合并 char cfg_path[MAX_PATH]; PathCombineA(cfg_path, buffer, "config.cfg"); char* s = PathFindExtensionA(cfg_path); fmt::print("{}\n", ..原创 2020-08-11 10:07:43 · 556 阅读 · 0 评论 -
windbg 使用条件断点 ba
背景,我今天要调试一个大程序,里边的一个变量改变了,但代码量实在太大,如果想监控一个类的成员变量是否等于4,怎么办呢?#pragma onceclass CMyTest{public: CMyTest() { m_abc = 0; } void set(int a) { m_abc = a; }; int m_abc;};//调用的地方就是CMytest test;for( int i = 0; i< 100...原创 2020-07-04 23:10:50 · 461 阅读 · 0 评论 -
c++ 11 知识点
1. 万能引用:int add(){ return 100;}const int &n = add(); // 编译通过int &p = add(); // 不能编译通过原创 2020-05-08 00:47:57 · 234 阅读 · 0 评论 -
c++ string 常用封装
bool replace(std::string& str, const std::string& from, const std::string& to) { size_t start_pos = str.find(from); if(start_pos == std::string::npos) return false; st...原创 2020-01-09 17:17:57 · 298 阅读 · 0 评论 -
cocos2dx 动态替换图片
摸索很久才搞定,文件名相同时,替换精灵图片void HelloWorld::UpatePicture( std::string path ){ CCImage* img = new CCImage(); img->autorelease(); img->initWithImageFile(path); cocos2d::CCText...原创 2020-01-04 19:53:03 · 920 阅读 · 0 评论 -
opencv mat 显示对 cocos2dx 上边
// Assuming frame is cv::Matauto texture = new Texture2D;texture->initWithData(frame.data, frame.elemSize() * frame.cols * frame.rows, Texture2D::PixelFormat::RGBA8888, ...原创 2019-12-10 23:26:53 · 239 阅读 · 0 评论 -
FreeImage 用BYTE* 写入
FreeImage库 写入png 带alpha通道的图像: std::wstring filesave = L"d:\\a.png"; FIBITMAP* dib; dib = FreeImage_Load(FIF_PNG, "d:\\12.png"); FIBITMAP *src = FreeImage_ConvertTo32Bits(dib); int width = F...原创 2019-10-14 15:26:19 · 451 阅读 · 0 评论 -
C++ 多线程竞争调试
https://stackoverflow.com/questions/39529000/c-threads-race-condition-simulationUsing g++ with -fsanitize=thread -static-libtsan:WARNING: ThreadSanitizer: data race (pid=13871) Read of size ...转载 2019-08-12 14:46:41 · 695 阅读 · 0 评论 -
c++ 浮点数比较
浮点数的比较:第一种:bool approximatelyEqual(float a, float b, float epsilon){ return fabs(a - b) <= ( (fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);}bool essentiallyEqual(float a, floa...原创 2019-03-29 13:45:35 · 1088 阅读 · 0 评论 -
十进制转十六进制 c++ 时间对比
方法1:template <typename I> std::string n2hexstr(I w, size_t hex_len = sizeof(I)<<1) { static const char* digits = "0123456789ABCDEF"; std::string rc(hex_len,'0'); for (size_t ...原创 2018-12-03 17:42:01 · 636 阅读 · 0 评论 -
RGBA数据使用c++存本地bmp文件
我从内存中的位图想得到其中的buffer数据,而且是32位的rgba 格式的,用下边的函数:内存中的位图得buffer的方法:其中的回调可以得到数据void CPaintManagerUI::BitmapCreate(HWND hWnd,HDC dc){ HDC hdcWindow; HDC hdcMemDC = NULL; HBITMAP hbmScreen = NULL; ...原创 2018-05-02 17:02:36 · 1368 阅读 · 1 评论 -
c++ 单例
#include #include templateclass Singleton{public: static T* getInstance() { pthread_once( &_once_control, init ); return _value; } private: st原创 2017-05-31 16:57:03 · 251 阅读 · 0 评论