windows c/c++
文章平均质量分 56
小哈龙
一颗勇往直前的心
展开
-
c++ std::string初始化为nullptr的问题
在c++ std::string或者std::wstring 中是否可以使用nullptr初始化,首先可以说的是是可以用nullptr初始化的,但是程序编译没有问题,运行起来就挂了,char*是可以初始化为nullptr的,为啥以char*为基础的std::string不能以nullptr初始化。原创 2024-09-24 16:52:45 · 236 阅读 · 0 评论 -
Visual C++ 64 位迁移的常见问题
C、当某个api函数的 out参数能返回一个指针时,应小心谨慎处理参数,在win32中,可以把一个ulong变量的地址进行强制转换后传递给api函数,返回的指针就保存在 ulong变量中,但在win64中,返回的指针有64位,如果使用ulong变量的话就会破坏其他变量的内容,正确并且简单的方法是直接定义一个指针变 量,把指针变量的地址作为参数传递给api函数。有符号和无符号整数之间的转换:将带符号的整数提升为同一类的或者更长类的无符号整数时,该整数首先提升为更长类型的带符号相同值,然后转换为无符号值。转载 2024-09-05 15:21:37 · 123 阅读 · 0 评论 -
Git使用错误分析
我做了这样的错误操作,在一个仓库下的一个子目录,执行了git init 创建了一个子仓库,然后想删掉这个子仓库,就只删除了该子目录下的.git文件夹,而没有删除缓存,执行如下命令删除缓存,并将该目录添加到当前仓库git版本控制。原创 2024-08-08 17:11:10 · 304 阅读 · 0 评论 -
VS2019卸载和安装Visual Assist x番茄助手教程
因为之前安装过低版本的VS和Visual Assist助手,导致后来安装更高版本的Visual Assist的时候一直安装不了。安装VA_X_Setup2333_0时一直是显示retrying,无法进行下一步。所以总结一下VA_X_Setup2333_0安装的步骤。如果之前安装有Visual Assist x,需要打开VS2019,项目栏扩展-管理扩展-已安装-工具选项里卸载Visual Assist。转载 2024-08-01 14:46:43 · 603 阅读 · 0 评论 -
通过网页调用本地的exe程序
创建一个自定义链接协议,实际上在浏览器中定义了一个新的 URL 方案,能够通过点击链接来触发自定义操作。如果您的 EXE 文件不需要参数,那么您可以简化注册表项中的命令设置。这种方法的原理是相同的,只是命令设置中省略了参数部分。如果您的 EXE 文件不需要接收参数,您可以直接指定 EXE 文件的路径。链接时,操作系统会调用相应的命令,从而启动本地程序。请注意,这个示例中的路径需要根据您的实际情况进行调整。在这个示例中,链接的 URL 是。在上面的示例中,将您的协议名称(在上面的示例中,将您的协议名称(转载 2024-04-11 10:08:43 · 1346 阅读 · 0 评论 -
Unicode(UTF-8,UTF-16,UTF-32)解析规则
Unicode只是一个符号集,它只规定了符号的二进制代码,并没有规定这个二进制代码应该如何进行存储,简单的讲就是,Unicode为所有字符提供一个唯一的编号,然后UTF-8、UTF-16等只是将字符的Unicode编号编码成相应的二进制代码进行存储或运算,所以相同Unicode编号若用不同的编码方式进行编码,最后会产生不同的二进制代码,这就是有时候文件造成乱码的原因。Unicode与JavaScript详解(阮一峰)字符编码笔记:ASCII,Unicode 和 UTF-8(阮一峰)转载 2024-04-10 11:03:58 · 510 阅读 · 0 评论 -
C++ #if defined (WIN32)和#ifdef(WIN32)
其中,不同系统下编译器定义的宏如下表,在该系统上大多数编译器均支持此宏。#if defined计算表达式并检查真值,可以执行复合条件。#ifdef检查是否已定义该名称的宏,只能使用一个条件。转载 2024-02-19 14:20:04 · 849 阅读 · 0 评论 -
dxflib实现dxf文件的读写
dxflib是开源的读写dxf文件的库,在QCAD上可以直接下载(QCAD - Downloads)。dxf作为一种通用的绘图文件格式,包含的信息量非常大,要去理解文件的内容也比较受苦,详细的解释在论坛里可以找到(dxf 格式详解_dxf是什么文件格式_runing9的博客-CSDN博客)。使用dxflib库的优势在于它很好地简化了各部分的读写,代码可读性很强,同时配库只需要将压缩包下的src文件包含在目录中即可。转载 2023-11-20 10:54:17 · 770 阅读 · 0 评论 -
C++中 {}的功能
在一个代码块中,可以定义局部变量,控制变量的作用范围,以及变量的生命周期。原文链接:https://blog.csdn.net/weixin_63414068/article/details/132421692。版权声明:本文为CSDN博主「宋雷720」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。花括号可用于初始化各种类型的数据结构,例如数组、结构体、容器等。对于没有默认构造函数的类,花括号可以用于默认初始化。在类的构造函数中,花括号可以用于成员初始化列表。转载 2023-11-01 10:47:49 · 603 阅读 · 0 评论 -
c++代码区域折叠
在c#语言中有这样的关键字,可以实现将制定区域内的代码折叠,在VS中方便查看。原创 2023-10-26 18:09:41 · 239 阅读 · 0 评论 -
vs安装番茄助手没有任务栏
C:\Users\用户名\AppData\Local\Microsoft\VisualStudio\16.0_36832cb3\Extensions\opqkp1jn.muf。双击安装显示失败,打开vs扩展-管理扩展里有番茄,但工具栏没有。双击番茄安装包没反应,先右击属性勾选兼容性。后crack文件夹中的VA_X.dll替换。再重新打开vs(没啥变化)中的VA_X.dll。转载 2023-09-06 16:54:04 · 741 阅读 · 0 评论 -
QT内存管理问题
因为退出时,w 比 label 先被析构,当 w 被析构时,会删除chilren列表中的对象,也就是这儿的 label。但 label 却不是通过new分配在heap中,而是在stack中,delte stack中的东西会导致崩溃。运行正常,退出时会崩溃 ,因为label被close时,将会 delete 这儿label对象,但label对象却不是通过new分配到heap中的。由于事件队列中可能有引用该对象的地方,当deleteLater调用时,,从而确保最后释放对象时是安全的。,反倒需要多多小心了。转载 2023-08-10 15:21:28 · 140 阅读 · 0 评论 -
c++中operator()的用法(类型转换)
函数对象:定义了调用操作符()的类对象。当用该对象调用()操作符时,其表现形式如同普通函数一致,因此取名为函数对象。与普通函数相比,函数对象更加灵活,代码看上去更加优雅。在c++中可以用operator Type()的形式定义类型转换函数,将类对象转换为Type类型。对于operator()的一些优雅高效的应用还在探索中。转载 2023-08-10 09:50:14 · 1350 阅读 · 0 评论 -
Win11系统软件无法拖拽发送文件的解决方法
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System。转载 2023-03-02 10:02:58 · 5273 阅读 · 0 评论 -
Visual Studio 远程调试
原文链接:https://blog.csdn.net/qq_40878679/article/details/123912422。切记本地代码更改后,要同步更新到目标电脑,保持一致,才可断点调试,要不提示版本不一样无法增加断点。2.然后点进去进行对应的位数,找下图此文件,右键管理员运行,并设置选项。5.点击目标电脑的程序,然后会进入到本地电脑的断点,可进行调试查看。3.复制本地debug文件到目标电脑,启动目标电脑的Debug程序。4.然后本地电脑进行附加目标电脑的进行,加上调试断点。转载 2022-09-28 14:34:13 · 2110 阅读 · 0 评论 -
<Win32 API> 获取系统文件夹路径
获取Windows系统文件夹,如我的文档,临时文件夹,桌面,System32文件夹,Windows目录,Program Files应用程序目录等,系统提供了相应的API。本文转载自:https://blog.csdn.net/meta_cpp/article/details/41959585。转载 2022-08-12 16:58:32 · 1210 阅读 · 0 评论 -
用C/C++创建windows服务程序
右键点击->启动 大功告成。GetKeyName------获取服务的 ServiceKeyName。continue--------向服务发送 CONTINUE 控制请求。showsid---------显示相应于假定名称的 SID 字符串。pause-----------向服务发送 PAUSE 控制请求。sidtype---------更改服务的服务 SID 类型。qsidtype--------查询服务的服务 SID 类型。create----------创建服务(将其添加到注册表)。...转载 2022-08-03 11:39:57 · 6197 阅读 · 0 评论 -
C/C++ 创建windows系统服务程序
Windows上面的程序可以分为前台运行和后台运行,像windows的系统服务都是属于后台程序。那如何将一个程序变成后台运行呢?可以在 cmd里面用sc命令来操作:Windows 服务的安装和卸载此次重点介绍如果用c++代码创建一个Windows服务程序。...转载 2022-08-03 11:22:11 · 1942 阅读 · 0 评论 -
WINDOWS 系统错误代码
3814 此命令的语法是: AT [id] [/DELETE] AT 时间 [/EVERY:日期 | /NEXT:日期] 命令 AT 命令会在以后的 指定日期及时间,安排程序在服务器上运行。请确认要被升级的程序在您的计算机上且您的升级修补程序是正确的。8495 因为目录没有提议的命名上下文上面的命名上下文的副本,所以无法验证所提议的命名上下文的名称。请与系统管理员联系,获取一份新的终端服务器客户,其许可证号码必须是有效的、唯一的。架构容器上的属性不存在,或者提供的凭据没有读取属性的权限。...转载 2022-08-03 11:12:28 · 4919 阅读 · 0 评论 -
c++文件解析之换行(CRLF、LF、CR)
CRLFCarriage-ReturnLine-Feed的缩写,回车换行的意思CRCarriageReturn,对应ASCII13中转义字符\r,表示回车LFLinefeed,对应ASCII10中转义字符\n,表示换行CRLFCarriageReturn&Linefeed,\r\n,表示回车并换行(ASCII码表里也有用newline,nl表示换行的)据传说,CR、LF最原始的还要追踪到最早到机械打字机时代,CR回到同一行的纸张最左侧的意思,两个组合可不就是换行....原创 2022-07-28 18:05:31 · 2816 阅读 · 0 评论 -
c# string与c++ std::string的互相转换
本文转载自:C#DLL托管c++ (CLI) String^ 到 std::string 的相互转化_成魔的羔羊的博客-CSDN博客当使用C++/CLI包装C++本地代码时,常常需要将System::String转换为std::string或者char*以调用native C++函数。.net环境中的字符串是unicode的,占2个字节,而很多native C++函数都没有考虑unicode,这种转换不仅仅是2字节转1字节,同时也涉及到字符集的转换。...转载 2022-06-27 14:32:43 · 4250 阅读 · 0 评论 -
VS在release模式下进行调试
在这种情况下,通过配置也是可以在release下调试的。步骤如下:1.工程项目上右键 打开 属性界面2.c++ --- 常规 ---- 调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3. c/c++ ---- 优化 ---- 优化 配置 选 禁止(/Od) 4.连接器 --- 调试 ---- 生成调试信息 选 是 (/DEBUG)原文链接:https://blog.csdn.net/liuzhezhe111/article转载 2022-06-14 13:54:38 · 2424 阅读 · 0 评论 -
GetDIBits 遍历位图 获取像素的颜色值(RGB)
GetDIBits 遍历位图 获取像素的颜色值(RGB)CBitmap m_bmp;//根据位图资源导入之后的ID来获得位图m_bmp.LoadBitmap(IDB_BITMAP_ORIGIN);接下来就是通过GetDIBits函数来对位图的像素进行遍历,获取RGB转载 2022-06-13 16:36:42 · 927 阅读 · 0 评论 -
c++中ifstream一次读取整个文件
读取至std::string的情况 第一种方法:第二种方法:————————————————版权声明:本文为CSDN博主「夜惊心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/tulip527/article/details/7976471转载 2022-06-02 15:38:25 · 3069 阅读 · 0 评论 -
QString与std::string 有中文时的转换操作
一. std::string转QString1.一般情况下(不包含中文)std::string str="111";QString strQ=str.c_str();2.包含中文情况下std::string str="中文测试";QString strQ=QString::fromLocal8Bit(str.c_str())二.QString转std::string1.一般情况下(不包含中文)QString strQ="qwe";std::string str=str原创 2022-04-20 14:49:04 · 4271 阅读 · 1 评论 -
VS增量编译
http://blog.163.com/soda_water05/blog/static/212832235201381521147398/原文是VS2008和VS2010的解决方案,现推广至VS2013在使用VS2013编译C++程序的时候,每次修改工程中的某一个文件,点击“生成-仅用于项目-仅生成**”时,往往都是整个工程都需要重新编译一遍。最烦人的时候是当编译完了出错,修改了错误再次编译,浪费很多时间。那么怎么配置VS2013像VC6.0那样默认的可以只编译修改后的文件呢?针对这个问题的解决.转载 2022-03-28 16:07:25 · 620 阅读 · 0 评论 -
浮点数比较大小常用规则
//EPSINON 定义精度a>b if( (a-b) > EPSINON)a<b if( (a-b) <-EPSINON)a>=bif( (a-b) >= -EPSINON)a<=b if( (a-b) <=EPSINON)a==b if ((a-b>=-EPSINON) && (a-b<=EPSINON))原创 2022-03-23 10:43:46 · 641 阅读 · 0 评论 -
VS调试时偶发无法进入断点、行号错乱等问题解决方法
一.前言在使用VS调试时,有时会遇见以下这几种情况:1.调试之前断点打在20行调试时断点却跑到了22行2.调试时打了断点,单步调试时,它就时断不到该断的位置我在调试时就经常遇见这种情况,刚开始是以为文件没有编译最新的,或者是调试文件(.pdb文件)没有更新,然后清理,重新生成,删除.pdb文件重新生成,都无济于事,好气啊。二.解决方法遇见这种情况有可能跟当前代码字符集与行尾格式有关,尝试用如下方式:1.vs菜单--》文件--》高级保存选项编码改为:UTF-8行尾格式改为:原创 2022-02-14 14:39:52 · 3579 阅读 · 0 评论 -
你所不知道的C和C++运行库
本文转载自:你所不知道的C和C++运行库_ithzhang-CSDN博客_c++运行库 周五晚,小雨,少见的未加班。无聊,遂准备写一篇博客,介绍一下C和C++运行库,只因发现工作几年的人对此一知半解的大有人在。 在使用VC构建项目时,经常会遇到下面的链接错误: 初学者面对这些错误常常不知所错:libcmt.lib是什么东西?msvcrtd.dll又是干吗用的?在使用VC++时我们也常常对下面的运行库配置项感到疑惑,它们到底究竟是什么意思呢?甚至一些工作了很多年的程序员也对此一知半解.转载 2022-01-24 14:11:50 · 459 阅读 · 0 评论 -
c++ 11之 lambda表达式的使用
一.使用示例#include <iostream>#include <string>#include <stdio.h>#include <functional>using namespace std; //lambda 表达式的第一种用法void LambdaUseOne(){ int a = 1, b = 2, c = 3; auto retVal = [=, &a, &b]() { printf("inne原创 2021-11-29 15:55:14 · 663 阅读 · 0 评论 -
探秘INT3指令
简介本文转载自:探秘INT3指令 | 码农家园INT3指令是专门用来支持调试的一条指令,它对应的机器码是0xCC。当cpu执行到这条指令是会产生异常并调用相应的异常处理程序(3号中断)进行进一步的处理。详细分析int3指令原理cpu在指令完int3指令后会引发异常,此异常会使操作系统从中断向量表中调用3号中断处理程序,此中断处理程序即函数nt!KiTrap03( ),此函数进行一些处理后又会继续调用nt!KiDisPatchException( )函数来进行异常的分发。而此函数会先.转载 2021-11-15 15:02:57 · 8442 阅读 · 0 评论 -
VS编译的程序设置----需要以管理员身份打开
在使用VS编译c++程序时,有时会需要输出的程序在运行的时候以管理员身份打开,使用代码实现,稍微有点麻烦,为此,可直接在VS工程配置中修改连接属性即可实现这一效果:修改的文件为:xxx.vcxproj设置完之后生成的程序,启动该程序 会提示以管理员身份打开...原创 2021-11-10 11:38:16 · 1668 阅读 · 0 评论 -
程序崩溃优雅退出之-SetUnhandledExceptionFilter
一.百度百科设置异常捕获函数.当异常没有处理的时候,系统就会调用SetUnhandledExceptionFilter所设置异常处理函数.例如一些程序在出错的时候,会向用户报告说程序那出错就是利用这个.例如QQ..异常处理中的一部分当发生异常时,比如内存访问违例时,CPU硬件会发现此问题,并产生一个异常(你可以把它理解为中断)然后CPU会把代码流程切换到异常处理服务例程。操作系统异常处理服务例程会查看当前进程是否处于调试状态如果是,则通知调试器发生了异常,如果不是则操作系统会查看原创 2021-11-09 16:16:58 · 3613 阅读 · 1 评论 -
Qt实现简单的密码加密
本文转自:https://blog.csdn.net/weixin_43935474/article/details/93883041原作者这种思路可以学习一下QT版本:Qt 5.5.1 (MSVC 2013, 32 bit)Qt Creator版本:Qt Creator 3.5.1 (opensource)系统:win10假设有这样一个场景,一个软件的用户帐号个数很少,我们为了方便就将用户帐号和密码存放在配置文件中,但是又不能直接将密码以明文的方式写在配置文件里,需要做一个简单的加密。我转载 2021-11-05 17:38:22 · 4196 阅读 · 0 评论 -
c++ 编译代码时Link失败,无法关闭目标文件
一.概述最近在编译c++代码时,在连接的时候,突然报了一个错误:fatal error LNK1105:无法关闭文件xxx.exe",看到这种情况,一般进行以下几步操作:1.打开任务管理器,找一下xxx.exe程序,关掉它(没错,正常都是这样干的)但是我找了半天,确定这程序没有运行,而且我也尝试直接删除该xxx.exe程序,发现可以直接删除,不存在被占用的情况,也就是删除是可以的,就是在编译,连接的时候占用,我墨迹了一会儿,实在想不起是哪里占用,这种方式失败。2.重启开发工具VS原创 2021-10-30 17:18:05 · 1137 阅读 · 1 评论 -
c/c++文件操作之缓冲区
一.前言在使用c/c++读取文件,写入文件是很常用的操作,在使用之余很少注意一些细节,比如文件流的缓冲区,系统内核系统空间与用户空间之间的交互操作等,此处来简单描述一下缓冲区二.缓冲区含义:内存中开辟的一片缓冲区域缓冲类型:全缓冲,行缓冲,不带缓冲操作方式:可以通过标准库函数setvbuf来设置缓冲区的类型setvbuf(_Inout_ FILE * _File, _Inout_updates_opt_z_(_Size) char * _Buf, _In_ int _Mode,原创 2021-10-27 18:26:42 · 3699 阅读 · 0 评论 -
字符串函数sprintf / sprintf_s 容易出错的地方
其实,用C/C++做开发的童鞋,对sprintf不会陌生,对该函数的一些问题,一直想好好总结下:如果第2个format(格式)参数中用%指定的后续参数个数与实际参数必须一致,否则可能会出各种问题。所谓一致是严格一致,看几个例子:1. 参数类型不匹配如果你用的%d,对应的实参却用double,将得到错误的结果,而且更为严重的是,如果该参数后还有别的参数,将影响后面的参数解析:char buf[1024];double dV = 123.0;int iLen = sprintf( buf转载 2021-09-03 16:59:38 · 4075 阅读 · 0 评论 -
QString和std::string转换乱码与sqlite存储汉字乱码
在使用sqlite存储数据时,当存入字段是汉字时,使用如下方式存储,存储在数据库的字段是可以正常显示的std::wstring wstr=_T("汉字");std::string str=ws2s(wstr); //ws2s为字符转换函数当从数据库读取数据时,保存为std::string,如果字符串包含汉字,在列表中显示时,会出现乱码现象,此时,需要将std::string正确转换为QString ,如下std::string cstring;QString qstring;.原创 2021-08-20 14:42:20 · 1077 阅读 · 0 评论 -
文件路径的正斜杠(/)与反斜杠(\)
先总结:斜杠/常用;反斜杠\只有在windows系统中使用C文件路径为什么要用双斜杠?因为 \ 在 C/C++/C# 中是转义前导字符,例如 \n 代表换行。如果路径中刚好有类似转义字符开头的,那么就会引起问题,所以路径中的 \ 必须用 \ 的形式。路径中使用斜杠/和反斜杠\的区别到底是什么?事实上是只有windows系统中用\,其他的项目中,linux中都使用/,这是历史原因,不解释.Unix使用斜杆/ 作为路径分隔符,而web应用最先使用在Unix系统上面,所以目前所有的网络地址转载 2021-08-11 16:27:36 · 4781 阅读 · 0 评论 -
c++ 以当前时间为文件名打印日志
打印日志的方法很多,现成的库也很多,但是最简单的日志信息输出,自己造个方法就可以了,将常使用的功能,代码如下:#include <time.h>//输入保存目录,要写进文件的字符串void LogOut(string sDir, string strOut){ char pStrPath1[32]; time_t currTime; struct tm *mt; currTime = time(NULL); mt = localtime(&currTime);原创 2021-07-15 11:28:00 · 975 阅读 · 0 评论