C++
清风徐来
这个作者很懒,什么都没留下…
展开
-
C++ 编译FreeCAD
FreeCAD 编译打包原创 2022-12-13 16:48:57 · 591 阅读 · 1 评论 -
C++ 更改可执行文件信息
目标:更改文件信息,如下图所示:参考链接:https://github.com/electron/rceditC++外部程序修改exe文件属性信息_PEINTRE_的博客-CSDN博客_修改exe文件说明示例:参考上面第一个链接,编译生成一个exe文件,然后调用该exe文件更改其他文件信息set WORK_DIR="D:\WORK"set RCEDIT_DIR="D:\rcedit-master\Default"set PATH=%RCEDIT_DIR%;%PATH%.原创 2022-05-29 22:33:10 · 1041 阅读 · 0 评论 -
VS2017 Community C++模块 离线打包安装
目标:安装VS的电脑有可能是没有网络的,但VS2017官方没有提供离线版本,需要自行制作步骤:请仔细阅读微软官网关于离线下载使用的说明,链接如下:https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2022意味着不能通过运行 vs_Community.exe 界面的方式来下载离线包,它只能本机使用。下面链接是关于下原创 2022-02-16 16:18:49 · 3840 阅读 · 0 评论 -
NX二次开发 调用Qt界面
NX二次开发 QT原创 2021-11-26 17:54:58 · 3423 阅读 · 2 评论 -
C++ std::share_ptr 错误使用样例
环境:Win10 x64, VS2017描述:智能指针错误使用后,所指对象被释放代码:#include <iostream>#include <algorithm>#include <memory>#include <string>#include <vector>#include <map>class People{public: People() { std::cout原创 2021-06-29 11:37:48 · 785 阅读 · 0 评论 -
Win10 VS2015 编译 boost 1.70 64位 静态库
1. boost 下载地址:https://www.boost.org/,下载解压2. 打开VS2015 64位窗口:3. 按照下图命令顺序编译:上图第3步命令:bjam stage --toolset=msvc-14.0 architecture=x86 address-model=64 --without-graph --without-graph_parallel --stagedir="C:\Users\think\Desktop\boost\bin\vc14-x..原创 2021-06-16 16:04:48 · 658 阅读 · 0 评论 -
C++ vector不能存放基类对象
描述:假设定义基类 OprBaseData,则std::vector<OprBaseData> GetOprBaseData();编译报错原创 2021-05-26 11:09:37 · 526 阅读 · 0 评论 -
C++ 报错 NULL处的结构
环境:VS2017介绍:单例类中的某个成员变量在使用时,报错,如下图:原因:单例类忘记初始化,GetInstance() 直接返回NULL,然后调用单例类的函数就会报错原创 2021-05-25 15:41:31 · 801 阅读 · 0 评论 -
C++ 创建带空格文件夹
环境:Win10,VS2017代码:#include <stdlib.h>#include <io.h>#include <string>//空格路径带双引号std::string AddDoubleQuotations(std::string value){ return '\"' + value + '\"';}//创建文件夹,folderPath为输入参数,函数内部会加上双引号void CreateFolder(std::str原创 2021-04-26 23:57:39 · 447 阅读 · 0 评论 -
C++ VS2017 mupdf 环境配置(入门篇)
环境:Win10 x64,VS2017,mupdf-1.17.0-source.tar.xz背景:项目临时需要将PDF转成PNG, 需要保证画面清晰度和速度, 网上有多种方式ImageMagick,Mupdf..ImageMagick 按照网上的教程,搞了半天没搞明白,然后换成了Mupdf,发现还是挺容易上手的!下载:官网地址:https://mupdf.com/downloads/index.html (下载速度有点慢)参考链接:http://labisart.com/b...原创 2021-03-23 21:23:39 · 2551 阅读 · 1 评论 -
C++ 常见报错
前言:平时会遇到报错,也没有集中的积累汇总,特整理供以后使用问题1:error LNK2001: 无法解析的外部符号开发环境:Win10,VS2015报错现象:建立了两个项目,其中项目A是导出动态Dll库,项目B调用A库,然后编译报错解决办法:报错的原因是:项目B中的“链接器”-》“常规”-》“附加库目录”中包含了多个路径,假设为PathA,PathB,PathC, 我要调用的A.lib文件应该在PathC中,但恰好PathA中也有一个同名的文件,导致报错,只要把PathA中的多余的删.原创 2021-02-18 14:03:29 · 2577 阅读 · 1 评论 -
Windows C++ 删除带空格文件夹
环境:Win10,VS2015注意:路径一定要添加双引号,否则删除失败 !!!代码:#include <iostream>#include <Windows.h>//删除文件夹void RemoveFolder(std::string name){ std::string cmdStr("/C rmdir /S /Q "); cmdStr.append(name); ShellExecuteA(NULL, NULL, "cmd.exe"原创 2020-11-27 15:44:00 · 439 阅读 · 0 评论 -
C++ 易错点集合
目标:用于记录编程易错点1. std::find_first_of#include<iostream>#include <string>using namespace std;int main(){ std::string first = "KD"; std::string source = "KTABC"; // 注意: idx = 0 int idx = source.find_first_of(first); re原创 2020-11-12 15:46:31 · 191 阅读 · 0 评论 -
C++ Fortran 环境搭建
环境:Win10 x64, VS2015, IVF目标: 能够在VS2015环境下,实现Fortran 代码编写,调试,C++ 调用 Fortran 动态Dll下载:1. 安装 VS2015 和 IVF ,这里可以参考http://www.fcode.cn 这个网站,里面很详细2. 安装软件:IVF官网https://registrationcenter.intel.com/en/products/postregistration/?sn=VSGK-3JD6CL6Z&Sequen..原创 2020-10-26 21:03:09 · 1062 阅读 · 0 评论 -
C++ 动态分配数组 内存连续
环境:Win10 x64,VS2015问题:最近项目用到C++ 调用 Fortran,传参是多维数组,如果C++ 端定义data[3][4][5],Fortran 接收数据没有问题,但是数组data的容量是不定的,需要动态确定,动态申请后的数组,传到Fortran端数据就截断了.......分析:查阅资料才知道,数组动态分配内存有两种方式:方法1:void malloc2D_1(int **&a){ a = new int*[xDim]; for(int i.原创 2020-10-26 20:16:07 · 1673 阅读 · 1 评论 -
C++ ShellExecuteEx 调用exe 文件传参
环境:Win10, x64, VS2015记录日期:2020/10/15实现内容:1.ShellExecuteEx 调用exe2.以文件为参数传参代码:#include <iostream>#include <Windows.h>#include "psapi.h"#include "shellapi.h"using namespace std;int main(){ std::string partPath = "D:\\WorkPl原创 2020-10-15 21:10:50 · 1982 阅读 · 0 评论 -
C++ error C2059: 语法错误:“常数”
环境:Win10, x64, VS2017,NX记录日期:2020/09/10错误描述:NX二次开发时,新建了一个头文件 a.hpp,部分代码如下:#include <uf_defs.h>#include <uf_ui_types.h>#include <iostream>//牙形类型enum class DllExport FORM_TYPE{ UNIFIED = 0, METRIC, //出错语句原创 2020-09-10 17:36:49 · 12318 阅读 · 0 评论 -
C++ map find() 盲区
环境:Win10x64,VS2017介绍:C++ std::map 容器使用 find 函数记录时间:2020/08/27内容:平常习惯用std::vector 容器,std::vector<class T>find 调用的是 T的operation == 函数但std::map<class T, ....> find 调用的却是T的operation < 函数,这个一定要注意 !!!个人办法:如何使用map 中的find() 呢?1. 使用..原创 2020-08-27 13:20:53 · 1822 阅读 · 0 评论 -
C++ Json 静态库编译使用
环境:Win7 x64,VS2017介绍:C++ 调用Json库进行简单读写操作步骤:1. 下载地址:https://github.com/open-source-parsers/jsoncpp2. 解压后使用CMake工具进行配置,得到 JSONCPP.sln文件3. 打开.sln文件,找到项目jsoncpp_lib 下 json_writer.cpp,代码处添加红色部分,用于支持中文4. Debug/Release版本编译5. 将头文件和lib文件摘取出来头文件.原创 2020-06-15 22:37:52 · 1234 阅读 · 0 评论 -
C++ 创建文件夹
环境: Win7 x64,VS2015目标: 创建文件夹说明:_mkdir 创建文件夹有个限制条件,例如创建 C:\Test\Son,如果C:\Test文件夹不存在,则Son文件夹无法创建代码:#include <iostream>#include <string>#include<io.h>#include <direct.h>using namespace std;void CreateFolder(const std::st原创 2020-05-28 22:57:41 · 1397 阅读 · 0 评论 -
C++ 打开文件夹
环境: Win7 x64,VS2015目标 : 打开指定文件夹,支持空格中文路径,字符集支持Unicode/多字节代码:#include <iostream>#include <string>#include <Windows.h>using namespace std;std::wstring StringToWString(const std::string &str){ std::wstring wContext = ..原创 2020-05-28 21:22:54 · 3738 阅读 · 1 评论 -
基础知识 十进制转二进制
基本概念:B = 8 b , B 为字节,b为比特,b就是常说的“位”,例如二进制 00100011 00001111 就是16b = 2B,就是常说的两个字节转换:1. 十进制整数转二进制假设有十进制整数 2748,如何转换它的二进制呢,将2748除尽2得到商和余数(倒序),即1010 10111100现在是12位,因为一个字节是8位,所以必须以 8 的整数倍存储,需要补齐到16位 就是 00001010 10111100,但是因为二进制太长,通常查看二进制文件的时候都是.原创 2020-05-13 21:55:38 · 3071 阅读 · 0 评论 -
C++ 获取系统变量
环境:Win7 x64,VS2015目标: C++ 获取系统变量值,如果系统变量不存在,返回空代码:#include <iostream>#include <string>using namespace std;void TrimString(std::string &str){ string::size_type pos = str...原创 2020-05-08 16:08:04 · 645 阅读 · 0 评论 -
C++ VS2017 配置 opencv-4.2.0
环境:Win7 x64, VS2017,opencv-4.2.0内容:VS2017 下使用opencv-4.2.0操作步骤:1. 下载 opencv-4.2.0 链接:http://jaist.dl.sourceforge.net/project/opencvlibrary/4.2.0/opencv-4.2.0-vc14_vc15.exe 因为官方链接下载的太...原创 2020-04-02 18:10:57 · 574 阅读 · 0 评论 -
C++ 函数指针
环境:Windows x64,VS2015用途:函数指针之前没有用到过,直到遇到一种情况: 开发某个功能,开头和结尾一样,中间过程复杂多样,但中间过程的输入和输出是一样的, 这种情况下,用函数指针代替中间过程的函数就比较方便代码:#include <iostream>#include <string>usin...原创 2020-03-17 12:09:11 · 198 阅读 · 0 评论 -
C++ 判断 string 是 double
环境:Window7 x64,VS2015内容:今天写代码,需要判断string 是否是double值,例:"0.01" 是double值然后我写了一个函数,如下:#include <iostream>#include <sstream>#include <string>using namespace std;double StrTo...原创 2020-03-03 16:04:34 · 1310 阅读 · 0 评论 -
C++ MFC 小白篇
环境:Win7 x64,VS2015目标:MFC 常用问题记录内容:1. 如何添加子对话框"项目右键"->"添加"->"资源"->"Dialog"2. 如何设置主对话框利用向导生成的MFC项目,会有一个App类,例:然后该类中有InitInstance()函数,其中m_pMainWnd 指向的就是主对话框3.如何给对话框添加事件函数双...原创 2020-02-28 13:22:21 · 403 阅读 · 0 评论 -
C++ int 类型赋值 1e10
环境:Win7 x64,32G内存,8核,2.7GHz,VS2015目标:C++ int赋值测试:如上图所示: count1= 1e9时,count1 = 1 000 000 000; count2=1e10时,count2 =1 410 065 408;为什么 count2 != 10000 000 000?分析:VS201...原创 2020-01-13 16:37:32 · 6881 阅读 · 0 评论 -
C++ std::thread 简单测试
注:本文仅个人测试记录,不具备通用性,如有错误,欢迎指正。谢谢!环境:Win7 x64,32G内存,8核,2.7GHz开发环境:VS2015, Release目标:C++ 多线程在内存、线程数量、耗时方面简单测试代码:#include <iostream>#include <sstream>#include <vector>#incl...原创 2020-01-13 15:00:16 · 640 阅读 · 0 评论 -
C++ error C1189:WINDOWS.H already included.
环境:Win7 x64,VS2015描述:开发项目时,添加了stdafx.h,编译报错分析:首先找到afxv_w32.h是怎么被调用的?查找发现头文件包含顺序:stdafx.h -> afxwin.h ->afx.h ->afxver_.h ->afxv_w32.h打开 afxv_w32.h:也就是说,如果定义了 _WINDOWS_...原创 2020-01-07 13:34:39 · 2715 阅读 · 0 评论 -
C++ 文本对齐
环境:Win7 x64,VS2015内容:如下图所示,第一行输入参数,第二行输入int值,然后将其对齐,输出出来要求:数据之间必须有间隔,不能数据重叠!代码:#include <iostream>#include <sstream>#include <vector>using namespace std;std::string I...原创 2020-01-05 11:19:22 · 2188 阅读 · 0 评论 -
C++ 编码
环境:Win7 x64,VS2015内容:C++ 相关编码操作代码:CodeUitls.hpp#pragma once#include <iostream>#include <vector>/*说明:**多字节:1个字符对应1个字节**宽字节:1个字符对应多个字节 ,目的是为了支持世界其他地区的符号,如中文,其他语言等 Unicod...原创 2019-12-22 20:15:07 · 512 阅读 · 0 评论 -
C++解压库bit7z编译以及使用
...转载 2019-12-17 11:06:22 · 1558 阅读 · 0 评论 -
C++ std::vector 常用方法耗时记录
环境:Window7 x64 ,Vs2015 Professional硬件:内存 32.0GB 处理器 Inter(R) Core(TM) i7-4800MQ CPU @2.70GHz 2.70GHz测试内容:数据类型 int ,遍历数量 count = 1e9 ,std::vector方法耗时:序号 函数名 Debug Release 1 for(int ...原创 2019-11-22 17:25:10 · 1445 阅读 · 0 评论 -
C++ std::thread
基本概念:thread(): 构造函数,线程内函数已经开始运行join(): 子线程阻塞主线程,必须子线程结束,主线程才能继续运行detch(): 子线程脱离出主线程,同步运行hardware_concurrency(): 获取硬件支持的并发线程数正常返回支持的并发线程数,若值非良定义或不可计算,则返回0...原创 2020-03-13 14:23:33 · 312 阅读 · 0 评论 -
C++ 错误C3861 “_ReturnAddress”: 找不到标识符
问题描述:今天使用VS2015编译代码时遇到一个问题:“_ReturnAddress”: 找不到标识符HMODULE handle = NULL;bool isOK = GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,(char*)_ReturnAddress(), &handle);分析:奇怪的是,相...原创 2019-11-20 11:52:53 · 1249 阅读 · 0 评论 -
C++ 使用对象this传参 拷贝构造/赋值构造
#include<iostream>#include <memory>using namespace std;class Base;void Test(Base* const &obj);class Base{public: Base():m_value(5) { std::cout << "cr...原创 2020-03-13 14:23:15 · 452 阅读 · 0 评论 -
C++ std::string 包含中文
环境:VS2015场景描述:std::string 包含中文时,字符串截取有问题,如下所示:int main(){ std::vector<std::string> spliteList; string value = "类型A123"; for (int i = 0; i < value.size(); ++i) { ...原创 2019-10-18 17:21:53 · 14574 阅读 · 4 评论 -
C++ tinyxml 读取中文乱码
环境:Win7 x64,VS2015场景描述:VS2015使用tinyxml读取xml时,中文内容为乱码!测试:解决办法:方法一:使用ANSI编码,编码格式GB2312。(推荐)方法二:转码//UTF8转stringstd::string UTF8_To_string(const std::string & str){ int nwLe...原创 2019-09-18 18:21:29 · 2739 阅读 · 0 评论 -
C++ 编译第三方库注意事项
在C++项目中,经常会用到静态库,动态库,所以一定要保证第三方库导出正确。1.通常,导出动态库时,h/hpp文件会有以下代码:#ifdef LC_EXPORT_DLL#define LC_DLL __declspec(dllexport)#else#define LC_DLL __declspec(dllimport)#endif然后在C/C++ -----> 预处理器-...原创 2019-03-11 15:05:39 · 1238 阅读 · 0 评论