自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录日常开发的小问题备忘

一个10年开发经验的码农

  • 博客(46)
  • 收藏
  • 关注

原创 市面第一款 C++ 版本的U盘装机软件(即将上线)

市面大部分U盘装机软件,都是采用Au3脚本开发,而且有各种捆绑,闲来无聊,采用Qt C++制作一款C++U盘装机软件,从此告别Au3脚本,各种炫酷界面随便换,敬请期待。请大家帮忙起个名字哈哈哈哈。

2024-09-25 23:05:35 421

原创 Visual studio Release模式下调试

在开发过程中,有时会遇到这样的问题:代码在Debug模式下运行良好,但在Release模式下运行却出现错误。如果你正在编译的是一个库,请确保使用“/Zi”选项,因为这将生成完整的调试信息,而不会影响优化设置。选择“C/C++” -> “常规” -> “调试信息格式”,将其设置为“程序数据库(/Zi)”。选择“链接器” -> “调试” -> “生成调试信息”,将其设置为“是(/DEBUG)”。选择“C/C++” -> “优化” -> “优化”,将其设置为“禁止(/Od)”。3. 设置调试信息格式。

2024-05-27 23:25:10 1281

原创 Vistual Studio Release模式 调试方法

这样做会使编译器在生成的可执行文件中包含调试信息,方便调试器在Release模式下进行源代码级调试。如果你正在编译的是一个库,请确保使用“/Zi”选项,因为这将生成完整的调试信息,而不会影响优化设置。优化往往是导致Release模式下错误的原因之一。禁用优化可以使Release模式下的执行路径更接近于Debug模式,便于发现和调试问题。

2024-05-27 23:20:19 755

原创 花3天时间,用Qt C++做了一个产品级“见缝插针“小游戏,结果被虐哭了

花3天时间,用Qt C++做了一个产品级"见缝插针"小游戏,结果被虐哭了|Qt见缝插针|Qt开发|Qt游戏开发|C语言|C++

2024-05-13 18:32:43 235

原创 QT推箱子|C/C++推箱子|Qt游戏编程|C/C++游戏编程|Qt绘图|Qt信号槽|Qt动画|C语言教程|C++教程

【QT C++篇】QT推箱子|C/C++推箱子|Qt游戏编程|C/C++游戏编程|Qt绘图|Qt信号槽|Qt动画|C语言教程|C++教程。游戏编程 Qt C++篇,该系列教程须掌握基本的C/C++基本语法。QQ群: 468267272。微信公众号:疯狂程序人。

2024-04-24 15:17:12 362 1

原创 C语言版推箱子

C语言简易版推箱子,使用easyx库编写,适合新手朋友,简单写了3个关卡,可以在这个基础上继续扩展,需要源码,关注“疯狂程序人" 公众号 回复"推箱子"获取,c语言版推箱子|easyx库|C/C++推箱子|c语言教程。或加入QQ群468267272,群文件获取。

2024-04-24 15:14:57 245

原创 Qt C++游戏编程即将上线

渴望掌握Qt C++开发技能,打造令人惊艳的游戏项目吗?那就赶紧加入我们的精品游戏项目实战课程吧!

2024-04-17 10:10:35 192

原创 HTTP状态码大全(200、404、500等)

用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。很多服务器端的错误都可能导致该错误信息。

2023-04-10 20:34:33 4949

原创 Rider For Unreal项目缓存文件清理

Rider会为每个项目生成一个项目缓存文件夹(SolutionCaches),这是Rider检索完项目之后生成的,如果项目正在使用,不要删除,否则下一次打开项目时,又会重新检索,旧项目可以删除。

2023-04-01 19:21:23 1605

原创 虚幻C++各种字符串类型的转换

【代码】【UE4 C++】UE4各种字符串类型的转换。

2023-03-30 12:20:25 988

原创 虚幻C++中FString的基本用法

bool operator=(const FString& Lhs, const FString& Rhs) 判断第一个字符串是否大于等于第二个字符串;bool operator

2023-03-24 16:31:28 5308 1

原创 虚幻引擎获取名称、状态、时间、帧数、路径与FPaths

【代码】【UE4 C++】简单获取名称、状态、时间、帧数、路径与FPaths。

2023-03-21 11:33:52 814

原创 C++日常开发中很实用的小技巧

看过很多人写的代码,有的处理是处理完毕后,字符串的最后一个字符(分割符)这种方式不是很可取,我一般的实现方式是,如下代码。这是一个很基础的问题,不能用变量但是可以用常量啊,常量的存储在静态存储区,程序运行时优先初始化,代码如下。将字符串数组(或Vector等)转换成带分割符号的字符串。数组个数用变量报错,但是有不想用数字常量怎么办。

2023-01-11 21:16:37 138

原创 【TortoiseGit】配置使用以及常见问题

问题:使用ssh从远程仓库clone代码报错:No suppotred authentication methods available(server sent:publickey)使用ssh从远程仓库clone代码时,出现这个错误,而使用Gti Bash命令行就可以,很简单设置一下小乌龟SSH Client的路径就好了。将路径改为Git的ssh.exe,路径在你的Git安装目录\usr\bin\ssh.exe 如下图。上面的Enable Proxy Server要勾选。

2023-01-11 17:20:31 267

原创 Qt创建子项目及使用

使用visual studio开发项目时,解决方案下后又很多子项目,子项目间相互依赖,在Qt下如何创建子项目呢?在aaa项目的界面上放一个QPushButton按钮,为了区分两个项目,为下面测试启动子项目做准备。然后其他不需要多讲,项目名称,编译套件选择好就可以了,创建好项目之后,会自动弹出新建子项目窗口。如果有多个子项目,Qt默认执行的就是第一个子项目,如果手动指定项目运行时默认执行的子项目呢。很简单,在构建出,选择子项目即可,选择aaa,项目启动时默认执行的就是aaa。

2023-01-10 13:32:47 2805

原创 VS+Qt开发环境搭建以及注意事项(一)

按照箭头提示,下载Qt Visual Studio Tools ,这时候后面会是个 时钟 的图标不是 绿色的对勾,此时要关闭visual studio,然后会弹出安装界面自动安装。Qt Vs Tools选择Qt Project Setting 或者右键项目,弹出项目属性,可以在Qt Modules中添加。一.安装VS Qt扩展(Qt Visual Studio Tools)添加Qt 版本系信息,可以点击换色的文件夹图标。下载对应的Vs版本的 插件,然后安装即可。注意,这里选择的路径是qmake.exe。

2022-12-30 17:40:44 6077 1

原创 Qt信号与槽看这一篇就够了

在实际的开发过程中,如果仅使用Qt提供的信号函数和槽函数,并不能满足我们的实际需求,因为可能会出现参数类型或者个数不一致的问题,这时候我们也可以自定义信号槽函数,接下来我们看一下信号槽的基本概念,和使用方式。定义信号函数要注意以上几点,因为信号函数只需要简单调用(发出信号)所以不需要具体实现,参数可以任意,槽函数的参数必须与信号函数一致,但是可小于信号函数的参数,信号函数多出的参数会被自动丢弃。),当某个信号signal发出时,与该信号连接的所有的槽slot,都会被自动调用,信号和槽本质也是函数。

2022-12-22 16:27:55 301

原创 虚幻蓝图 UMG点击穿透问题

UE开发UMG时,经常会遇到UMG穿透的问题,在UI上点击穿透到下面的世界中去。重载如下两个函数,然后返回值加上Handled。

2022-12-01 18:59:46 2278

原创 Qt透明无边框窗口以及拖动

如果我们将窗口设置为无边框之后(透明第二部分,Qt::FramelessWindowHint)那么我们的窗口是无法使用鼠标拖动的,就像上面的第二个圆角巨型窗口,解决方式也很简单,重写mouseevent相关函数就可以了

2022-12-01 12:31:58 3382

原创 C++ explicit 用法总结

网上有中说法说C++explicit关键字只能用于修饰只有一个参数的构造函数,其实这种说法是不准确的,有误导性,explicit关键字是为了防止构造函数的隐式转换的,理论上说,多参构造是不会发生隐式转换的,但是,如果,多参构造的参数都有默认值的话,那么隐式转换也会发生的,所以如果多参,且每个参数都有默认值的话,为了防止隐式转换也需要使用explicit关键字,什么是隐式转换,看下面例子。如果我们在我们的构造函数前加上explicit关键字,那么编译阶段就会报错,避免了运行期错误,在编码过程中能用尽用。

2022-11-04 12:27:43 498 1

原创 【UE·C++】UE4获取当前环境与WorldContextObject

那么如果我们自定义的UObject类,要获取我们类实例所处的世界信息怎么办,就像代码所示的我们在类中需要实现获取当前运行环境的功能,或者我们要使用获取某个Actor类在世界中的所有actor实例,这时候就需要用到meta中的WorldContext特性了,我们通过WorldContextObject作为中介,把世界信息告诉我们的UObject,这是自定义的通过Actor类获取该Actor在世界中所有实例的函数。而UObject众所周知是不能挂载组件的,也没有坐标的概念,没有实体当然就不能放置在场景中。

2022-10-28 16:03:36 3452

原创 虚幻引擎.uproject文件关联丢失的解决方案

找到Epic Games Launcher的安装目录..\Epic Games\Launcher\Engine\Binaries\Win64,找到名为UnrealVersionSelector的exe程序。将UnrealVersionSelector.exe 复制到相应的UE_4.27的安装安装目录\Engine\Binaries\Win64。然后运行这个程序就搞定了。

2022-10-26 23:39:55 1941

原创 虚幻蓝图MediaPlayer注意事项

在Windows平台下,我们的需要添加MediaSoundComponent组件,用这个组件来控制音视频的声音,使用SetVolumeMultiplier来设置音量,这个组件在Android下是无效的。MediaPlayer可以播放音频 视频(流或者文件)在使用MediaPlayer在Windows下播放视频或者音频时,没有声音,但是在Android IOS手机端正常播放声音。

2022-10-26 16:50:33 1678 1

原创 虚幻C++中GENERATED_BODY() 与 GENERATED_UCLASS_BODY()

表示我们使用父类的构造,如果我们在在自定义类中做一些初始化操作,可以直接在.cpp文件中实现构造函数,而不需要在.h头文件中去声明,这个宏会自动生成带有特定参数的构造函数,它之后的成员是public。表示我们不直接使用父类的构造函数,如果我们要在我们自定义的类中做一些初始化操作,需要我们自己在.h头文件中声明构造函数,然后在.cpp文件中实现该构造函数,它之后的成员的是private。它们的主要区别点是:继承父类之后,是否需要对父类的东西有所改动。这两个宏封装了UE对象构造函数相关内容。

2022-10-25 13:40:34 750

原创 虚幻蓝图BlueprintCallable与BlueprintPure区别

在日常开发中,BlueprintCallable相信都很常用,但是BlueprintPure就不那么常用了,我也是在项目开发时,需要用C++封装单例对象供蓝图调用时,才用到BlueprintPure,下面简单看一下他们区别。注意:Pure函数一般声明成static ,如果不声明成static,使用函数节点时。以上是我们肉眼可见的区别,下面看一下肉眼不可见的区别。Promote to Variable不可用。Promote to Variable可用。

2022-10-21 00:22:21 2926

原创 虚幻引擎播放视频,图片序列帧官方文档

关于UE播放视频,图片序列帧的用法,官方文档有很详细的用法,这里简单记录一下。

2022-10-18 21:14:19 1415

原创 【UE·C++】虚幻引擎中的委托(代理) Delegate

自从看了虚幻引擎的C++源代码,并使用虚幻C++开发了3个多月以来,心中对虚幻的技术团队有一种莫名的崇拜,没想到他们能将C++用的如此出神入化,希望可以站在巨人的肩膀上,继续砥砺前行。今天来总结一下虚幻中的委托。委托模式,在面向对象设计模式也是一种很常见的模式:它可以看做是函数的抽象,是函数的“类”。委托的实例将代表一个具体的函数,一个委托可以搭载多个方法,所有的方法被依次唤起,可以使委托对象所搭载的方法并不需要属于同一类。(网上找的简单的定义),它。

2022-10-17 16:46:40 3528

原创 非常好的XML解析库-libxml2

开发某项目时,需要解析某第三方软件生成的xml文件,本来使用的时tinyxml2,毕竟只有一个.h和一个.cpp文件,使用也很方便,但是在解析的时候,程序返回解析失败,经验告诉我,可能时文件编码的问题,随即查看了一下,生成的xml文件编码格式,果然是UTF-16 LE,将文件转换成UTF-8就没有问题,成功解析,本来想使用iconv来动态进行文件转码,在生成xml的时候将文件再转换成UTF-8编码,但是总觉得这种方式不太完美,随机又找了一下其他xml解析库,找到了libxml2

2022-10-16 13:19:26 1268

原创 虚幻C++简单屏幕截图功能

2. 蓝图函数库中要暴露给蓝图使用的函数必须为static(非static函数,蓝图调用的时候必须要有通过对象,就是我们在大部分节点中看到的第一个参数Target),例如代码中的CaptureScreenshot(),还有代码中AddStatic中的函数也必须时Static。1.如果编译报错,有关于ImageWrapper的,那么在项目配置中加入ImageWrapper模块。原文说要引入这个模块,但是我UE4.27.2中,没有引入也没有报错。网上找资料,看到的,亲自编写代码测试,记录备用。

2022-10-15 18:09:30 1473

转载 C++虚函数引发的内存泄漏

以前给别人解释过这个问题,我的解释是这样的,虚析构,就是在多态时,父类对象指针指向子类对象,如果父类的析构函数不是虚析构的话,那么在销毁对象时,只会调用父类的析构函数,从而子类对象并没有被真正销毁,今天查资料,发现C语言中文网上有个很好的解释,还有示例,就拿过来,给后来人看。再如,假设 CRectangle 类的对象在存续期间进行了动态内存分配,而释放内存的操作都是在析构函数中进行的,如果此处不调用 CRetangle 类的析构函数,就会导致被释放的对象中动态分配的内存以后再也没有机会回收。

2022-10-14 20:39:06 174

原创 【其他·工具】日常开发实用在线网站

Json中文网致力于在中国推广Json,并提供相关的Json解析、验证、格式化、压缩、编辑器以及Json与XML相互转换等服务。在线转换图标文件 - 将PNG转换为图标,将JPG转换为图标,将GIF转换为图标,将WEBP转换为图标,将SVG转换为图标。JSON在线解析及格式化验证 - JSON.cn。

2022-10-14 20:25:58 165

原创 虚幻引擎多线程同步之线程锁FScopeLock

跟踪一下,Windows::InitializeCriticalSection(&CriticalSection);,在Windows平台下它确实调用的是Windows系统的InitializeCriticalSection API函数。UE4的线程同步对象有很多,今天我们先来看一下线程锁,FScopeLock,它实现了一个区域级别的锁,它的实现需要注意两点。那此时大括号的内容就被锁住,同一时间,只允一个线程访问临界资源。

2022-10-10 16:58:33 2159

原创 UE4 ListView用法总结(二)Item的选中与数据获取

前面介绍了UE4中ListView的基本用法,可以正确添加Item并显示,但是我们并没有处理Item的选中。我们在上一篇的基础上,来继续研究ListView中Item的选中。一个Entry可能对应多个Item,在滑动的时候,使用不同的Item的数据来修改Entry的显示。一.选中ListView中的Item,改变背景颜色。在正式开始之前,还是要强调一下。

2022-10-08 15:24:33 2675

原创 UE4 ListView用法总结(一)列表显示Item

UE4中UMG的ListView控件,很强大也很方便,但是第一次用的时候,会有点晕,在我多方查证以及实验终于大致了解了他的使用方式。其实UE4的ListView就是一个虚拟列表,如果有过平台界面开发相关经验的同学,对于这个名词再熟悉不过了,他是列表控件按需显示Item的一种实现,只对可见区域渲染,对非可见区域不渲染或者部分渲染;试想一下,当我们的数据量超过上万乃至上10万条时,如果我们将数据全部一次性添加到列表中,轻则耗时过长,重则程序直接卡死,用户体验就不用说了,对资源造成了十分严重的浪费。

2022-10-04 17:37:16 2546

原创 UE4 插件开发问题总结

问题一:插件导入其他项目中是可以使用的,但是打包无法打包进去将插件.uplugin文件中的,模块描述器的Type字段改成Runtime即可,如果是在Windows平台的话,还要添加WhitelistPlatforms:[”Win32“,"Win64"] 问题二:打包项目运行时,提示自定义插件插件加载失败 找到我们的自定义插件.uplugin文件,在Modeules前加入"EnabledByDefault": false,然后重新打包,就可以了问题三:隐藏插件源代码 有时我们需要给他人提供我们自己开发的插件,

2022-07-11 15:26:17 1858

原创 Git基本用法总结

1.git配置用户名和邮箱

2022-06-25 10:57:37 178

原创 C语言格式化输出wchar_t * 中文乱码

在测试遍历打印文件名时,文件名带中文的全部显示问号。

2022-06-22 14:46:20 3929

原创 常用多字节,宽字节,通过字符串函数汇总

常用函数对照ANSI UNICODE 通用 说明数据类型(char.h) (wchar.h) (tchar.h) char wchar_t TCHAR char * wchar_t * TCHAR* LPSTR LPWSTR LPTSTR LPCSTR LPCWSTR LPCTSTR 字符串转换atoi _wtoi _ttoi

2022-06-22 14:02:15 691

原创 Windows文件创建,遍历,删除,判断,删除自身等

我们在Windows平台下进行开发时,经常需要跟文件文件夹打交道,今天就来总结整理一下,一些基本的文件操作,封装一些自己常用的函数方便自己以后使用1.创建文件2.判断文件或文件夹是否存在如果要删除文件,那么我们需要使用API函数DeleteFile来删除,但是如果文件被占用时,我们这个api会调用失败,我们要在程序中删除自身也是这种情况,程序正在运行,调用DeleteFile肯定是无法删除的............

2022-06-20 18:39:19 505

原创 VC++获取分区卷名,卷序列号,文件系统类型

windows程序开发中,经常需要获取卷的相关信息,这里只是简单做一个记录,备忘使用API函数GetVolumenInfomation()来获取,示例代码如下其他参数具体代表的意义查看msdn

2022-06-20 11:47:18 649

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除