![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
Kelvin_Ngan
Make things easy
展开
-
std::vector::size()-1在vector为空时并不等于-1
vector::size()-1的坑原创 2024-07-04 23:43:15 · 199 阅读 · 0 评论 -
libtiff压缩文件反而变大
libtiff压缩问题原创 2024-05-06 11:36:38 · 162 阅读 · 0 评论 -
创建文件夹和保存文件提示“系统找不到指定的文件”
系统找不到指定的文件原创 2024-02-02 11:50:07 · 540 阅读 · 0 评论 -
CMake generate之后修改install路径
CMake CMAKE_INSTALL_PREFIX修改原创 2023-12-26 10:42:30 · 428 阅读 · 0 评论 -
MFC静态链接+libtiff静态链接提示LNK2005和LNK4098
mfc静态链接兼容问题原创 2023-12-21 17:08:39 · 636 阅读 · 0 评论 -
VS2019编译时产生临时文件
VS2019编译产生临时文件原创 2023-12-10 10:36:24 · 784 阅读 · 0 评论 -
解决win11 vs2013打开解决方案后闪退
解决vs2013解决方案闪退原创 2023-04-07 14:41:35 · 1801 阅读 · 0 评论 -
调用动态链接库接口函数报错“未经处理的异常: 0xC0000005”
DLL调用的一种错误原创 2023-03-08 14:19:17 · 1657 阅读 · 0 评论 -
VS给软件设置版本号/软件图标无效
VS资源文件失效原创 2023-01-09 18:04:34 · 337 阅读 · 0 评论 -
派生类不允许使用不完整的类型
C++ 不允许使用不完整的类型原创 2022-12-09 17:11:23 · 145 阅读 · 0 评论 -
C++格式化字符串精度注意事项
C++标准库数据精度原创 2022-07-10 15:12:44 · 1084 阅读 · 0 评论 -
Sepera LT丢包问题
Dalsa Sepera SDK的丢包问题原创 2022-06-07 13:42:22 · 278 阅读 · 1 评论 -
【Intel汇编指令集】寄存器
指令集手册下载:Intel® 64 and IA-32 Architectures Software Developer Manuals4800多页的PDF,分4卷,本文基于 April 2022的文档Volume 1 - 7.1 PROGRAMMING ENVIRONMENT FOR GP INSTRUCTIONS、7.2 PROGRAMMING ENVIRONMENT FOR GP INSTRUCTIONS IN 64-BIT MODE1、通用寄存器32位General-purpose r翻译 2022-05-10 12:56:14 · 1999 阅读 · 0 评论 -
Socket accept建立TCP连接失败
本地作为服务端accept一直无法建立连接,在wiresharp中可以看到远端不断发过来SYN消息。本地作为客户端可以connect远端。原因:windows 防火墙没有完全关闭,之关闭了专用网络,没关闭共用网络原创 2022-03-11 22:26:42 · 5066 阅读 · 1 评论 -
std::thread发生Debug error R6010 abort() has been called
原因:std::thread对象在析构前没有调用join、detch或move,导致触发abort()具体场景分析:希望通过匿名函数构造thread对象,并脱离使用,从而避免手动释放对象指针void func(){std::thread thread{ [&] { //do something}};}因为忘记在最后加上detch(),导致每次func返回时就会报错。正确做法:void func(){std::thread thread{ [&] { //do s.原创 2022-03-03 13:32:23 · 1207 阅读 · 0 评论 -
不同版本VC++间相互调用的坑:标准库
某些时候不同项目或合作方使用不同的VS版本编译组件代码,如dll、静态库,此时涉及高版本VS调用低版本VS的组件或者低版本VS调用高版本VS的组件,如果在组件接口中使用了标准库,那么就会产生各种离奇古怪的BUG。例如在dll的接口函数中通过std::vector、std::string作为形参,这是不可取的,应该改用内建变量,常用的解决方案是先将标准库的数据结构转换为二进制流,以指针的形式传递,这个过程也称为序列化,那么在调用dll的地方就需要反序列化,即把二进制流恢复成标准库的形式。根本原因是不同版本原创 2021-12-26 09:33:16 · 1867 阅读 · 1 评论 -
彻底隐藏MFC对话框窗口+任务栏
创建项目名为 MFCApplication,app类CMFCApplicationApp,dialog类CMFCApplicationDlg修改以下地方:(1)修改CMFCApplicationApp类的初始化函数BOOL CMFCApplicationApp::InitInstance(){... CMFCApplicationApp dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse原创 2021-11-23 14:24:17 · 1664 阅读 · 0 评论 -
VS莫名其妙 LNK2019
所有东西都声明、定义好了,编译还是报 LNK2019解决办法:将相关的.cpp从项目中移除重新添加,编译成功。这是因为VS没有识别.cpp文件导致的,原因不清楚,可能是BUG吧原创 2021-08-09 14:09:01 · 223 阅读 · 0 评论 -
C++ 对象指针内存错误
从第三方库获得的对象指针,访问其成员时抛出内存错误原因:第三方库的接口头文件定义有问题,对象指针通过 int返回,应该改为 intptr_t(或者long long),有可能是该库从32位平台迁移到64位平台时遗漏了这个地方,64位的指针值强转为32位的int,丢失了高位32位导致访存访问到一个错误的地址...原创 2021-03-02 16:40:13 · 274 阅读 · 0 评论 -
关于不同版本VS编译获得的静态库、动态库的兼容性
MSDN文档中有所阐述 :C++Visual Studio 2015、2017和2019之间的二进制兼容性vs2013及之前的版本,不保证兼容,换言之,也有可能可以用,如vs2012编译的dll,在vs2013里调用,有时候是可以的。如果是vs2015以上版本,是互相兼容的。...原创 2020-03-26 14:52:41 · 3766 阅读 · 1 评论 -
编译openssl
准备工作:安装ActivePerl-5.26.3.2603-MSWin32-x64-a95bce075.exe安装nasm-2.14.02-installer-x64.exe下载openssl-OpenSSL_1_1_1-stable.zip电脑已安装VS2013(或其它版本)编译x86版本的库:1、解压openssl-OpenSSL_1_1_1-stable.zip,如获得D:\op...原创 2020-03-25 09:23:09 · 2523 阅读 · 1 评论 -
C++获取系统硬件信息
利用windows wmi api,需要通过COM调用官方实例:Example: Creating a WMI ApplicationInvoking a Synchronous Query基本思路是:调用IWbemServices::ExecQuery方法,通过WQL语法(SQL for WMI)查询关键字获取相应的设备信息类(关键字就是类名),然后调用IWbemClassObject::...原创 2020-02-29 15:19:12 · 3253 阅读 · 0 评论 -
vs2019在线安装失败+离线安装详解
无法下载,进度条一直为0%,通过命令行下载安装包先到官网下载安装器 (微软称之为引导程序): https://visualstudio.microsoft.com/zh-hans/vs/我这里下载都是Community版本打开命令行,跳转至安装器所在目录,执行以下命令下载安装包vs_community__34248442.1581234348.exe --layout .\vs2019_l...原创 2020-02-10 14:16:02 · 9985 阅读 · 0 评论 -
QT获取QFont所支持的family列表
#include <QFontDatabase> ... QFontDatabase fd; QStringList lis = fd.families(); ...原创 2020-01-16 14:05:10 · 2629 阅读 · 1 评论 -
QT+VS无法编译ui项目
平台:VS2013 + QT 5.9.1问题:新建一个解决方案"QtGuiApplication2",项目类型选择“Qt GUI Application”,项目名"QtGuiApplication2",编译成功;然后"解决方案"-添加-新建项目,项目类型同样选择“Qt GUI Application”,项目名"QtGuiApplication1",编译后报错:error C1083: 无法打开...原创 2020-01-15 14:15:12 · 2220 阅读 · 1 评论 -
C++的函数重载
作者:吴秦出处:http://www.cnblogs.com/skynet/转载 2014-05-13 16:15:06 · 655 阅读 · 0 评论 -
C的目录操作
Linux>> addd(1)Error using addd (line 2)Not enough input arguments. >> addd(1,2,3,4)Error using addd (line 2)Too many input arguments.>> addd(7,2,3)ans = 42转载 2014-05-13 16:51:20 · 1183 阅读 · 0 评论 -
浮点数的大小比较
节选自 : http://blog.csdn.net/waitfor_/article/details/8035773转载 2014-09-19 10:18:08 · 4464 阅读 · 0 评论 -
void及void指针含义的深刻解析
void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid赋给其他类型指针,转载 2014-09-03 15:02:05 · 485 阅读 · 0 评论 -
函数指针
函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。函数指针有两个用途:调用函数和做函数的参转载 2014-09-03 15:08:08 · 611 阅读 · 0 评论 -
【学习DCMTK】VC读取dicom图像
#include "dcmtk/dcmdata/dctk.h"原创 2014-09-03 15:29:14 · 5244 阅读 · 0 评论 -
C++传参
C++中传值方式分为传值、传引用、传指针,虽然传值方式不一样,归根结底,数据都保存在内存中,不管以什么样的方式,只要关注掉调用者的内存变化,即可搞清楚各种传参之间的关系。转载 2014-09-03 14:17:14 · 968 阅读 · 0 评论 -
c/c++ 中路径
文件路径的表示可以分为绝对路径和相对路径:绝对路径表示相对容易,例如:pDummyFile = fopen("D:\\vctest\\glTexture\\texture\\dummy.bmp", "rb");转载 2014-11-10 16:55:08 · 1366 阅读 · 0 评论 -
VS调试不能watch变量值
在opencv里,经常想查看Mat里面的数据值,原创 2014-10-24 11:39:14 · 2838 阅读 · 0 评论 -
CString.Format的详细用法
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。 先看看Format用于转换的格式字符: %c转载 2014-11-12 13:51:01 · 3069 阅读 · 0 评论 -
VC:CString用法整理
1.CString::IsEmptyBOOL IsEmpty( ) const;返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。说明:此成员函数用来测试一个CString 对象是否是空的。示例:下面的例子说明了如何使用CString::IsEmpty。// CString::IsEmpty 示例转载 2014-11-13 16:38:52 · 692 阅读 · 0 评论 -
SendMessage函数详解
SendMessage函数完全使用手首先 我们了解一下Windows的消息机制。Windows是一个消息驱动式系统,Windows消息提供应用程序与应用程序之间,应用程序与Windows系统之间进行通信的手段。 举个例子,打开记事本程序,该程序有一个 “文件“菜单。 那么,在运行该程序的时候,如果用户单击“文件菜单“里的“新建“命令, 这个动作将被Windows所捕捉,Windows经过分析转载 2014-11-13 16:41:46 · 6943 阅读 · 0 评论 -
浮点数和机器精度
在优化代码的过程中再次遇到转载 2014-10-28 13:54:25 · 7285 阅读 · 0 评论 -
debug和release
vs中的程序有debug和release两个版本,Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。转载 2014-11-14 11:15:29 · 705 阅读 · 0 评论 -
MFC下DLL/lib的调用
1、简介:dll和.lib都是程序集合,便于代码重用。都是二进制的文件。.dll也叫动态链接库,与程序链接的方式为运行时链接(run-time linked),为PE(portable executable)格式,也就是程完整的程序。.exe、.dll、.fon、.mod、.drv、.ocx等等都是动态链接库。如.exe为系统调用的函数集合。.dll不存在同名引用,且有导出表,与导转载 2014-10-15 13:18:49 · 1089 阅读 · 0 评论