抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Perforce入门 Perforce又称P4、P4V 为什么要用P4 游戏开发一定需要一个版本管理工具,除了保留编辑记录外,还可以保护资产,遇到一些严重崩溃可以回退,不然会出现引擎打不开了,蓝图数据全丢了,一天白干的情况 为什么不使用Git呢?因为Git对二进制支持很差,即使使用LFS,对于动辄几十G的项目也无能为力 而且P4与Git不同,Git是在状态间切换,一旦切分支、拉新,就要将...

使用Rust与WASM画三角形 概念 WASM是一种二进制格式,我们可以将一些语言编译为这种格式,使得代码可以在浏览器中运行 与Typescript转JavaScript不同,WASM是一种编译好的二进制,性能会比那些“编一句运行一句的代码”性能好 WASM最初是为了C/C++设计的,但也很适合使用Rust,如果你是一个Rust信徒,这套逻辑很适合你 环境安装 Windows 11 + W...

C++20特性 现在是2023年,C++23都出来很久了(尽管很多编译器没有实现全功能),但还是有着大量C++11/17的老项目,出于人力和风险的考虑并没有上新标准,我作为一个C++菜鸡,也没想着去了解C++20都更新了什么,直到最近遇到了很多语言层面的问题,于是想着学习一下C++20特性 当然这里面不止C++20 语言特性 指定初始化 可以只初始化一部分,可以指定想要初始化的部分 st...

C# Attribute用法 内建功能 标记函数 比如标记函数已过时,再调用这个函数时会有绿色的波浪线,并提示你函数已过时 [Obsolete("This func is obsolete, use newFunc()")]public void OldFunc(){ // do something} 数据验证 可以确保某个数据存在 public...

CMake构建C#项目并使用DLL 项目路径 Windows cmd下使用tree /f即可生成文件路径 .│ CMakeLists.txt│ Main.cs│ p4api.net.dll│ p4bridge.dll cmake_minimum_required(VERSION 3.23)project(P4Test CSharp)set_property(GLOBAL PROP...

C/C++编译与链接 《程序员的自我修养:链接、装载与库》阅读笔记 编译 编译可以被分为四个步骤: 预编译(Prepressing) 编译(Compilation) 汇编(Assembly) 链接(Linking) 预编译 gcc -E hello.c -o hello.i cpp hello.c > hello.i 移除并展开所有#define 处理所有条件预编译指令,如#...

map 突然发现一个华科大佬的博客,学习一波 map是一种映射结构,能够存取键值对(键是唯一的) map通常有两种实现方式:哈希表(std::unordered_map)、红黑树(std::map) 哈希表 哈希表的查找删除均为O(1) 哈希表是一种空间换时间的算法,现在我们要存储一组键值对,假设键的范围是0~99,那么我们就开辟一个大小为100的数组,数组中存储了指向值的指针,于是我们...

grep搜索lib grep 前几天写代码发现链接不到某个函数,同事说我肯定少链接了一个.lib文件,然我却不知道少链接了谁 同事交给我一个小技巧,lib文件本质是一个代码压缩包,是可以对里面的内容进行搜索的,在Linux(WSL)中进入存放.lib的库,输入命令 grep -r <函数名> . 就会匹配vkCmdBeginDebugUtilsLabelEXT这个函数在哪一个.l...

C++获取CPU型号 不同CPU的指令集有所差异,尤其是在使用SIMD之类的feature时要十分注意,以MSVC获取CPU型号为例 核心是使用指令__cpuid,其实你也可以__asm {}自己写汇编 #include <iostream>#include <string>#include <intrin.h>#include &...

C++20下spdlog使用踩坑 spdlog是一个开源的被广泛使用的C++log系统,于是我模仿Piccolo引擎写了一个Log系统,结果由于C++不允许连续进行两次及以上的用户自定义的隐式构造,使得spdlog的log函数无法正确推断匹配Args...,最后在公司C++高手的帮助下成功解决了问题,于是在此记录一下踩坑历程 最初的版本 我参考开源项目的实现,使用spdlog写了一个简易的L...