随笔分类 - C++
摘要:Unity引擎的字符串有三种存储方式: 堆 : 分配在堆上 内嵌 : 一个栈上的内存数据。 默认25字节,可以放长度最多24的字符串。这个长度定义为STACK_LENGTH. 外部 重点主要是前两种,这是一种优化方法,对于非常短的字符串,可以直接使用栈数据而不需要再次内存分配。C++伪代码看起来像这
阅读全文
摘要:需要注意的是,很多时候,某个编译器的版本并不完整支持某个C++标准,比如Visual Studio 2010 SP1,虽然支持了部分C++ 11的能力,但是依然有很多C++ 11的特性是不支持的。因此单纯通过C++标准的版本号来鉴别C++特性是否可用是并不完备的方法。具体支持情况可以参考这里。 #i
阅读全文
摘要:这些值可以用于在C++中判断版本和C++特性支持情况。 大版本 产品名 VC ++ 版本号 _MSC_VER定义 _MSC_FULL_VER定义 2022 Visual Studio 2022 version 17.10.3 14.40 1940 194033811 2022 Visual Stud
阅读全文
摘要:Rider的Inspections确实是非常好的功能,但是也并非每一种检查都适合当前项目,有的检查对于当前项目可能是没有意义的,比如对于一个基础库,将很多未使用的属性、方法、类等设置为public是很合理的,但是Rider会高亮提醒,这可能不是我们想要的,所以我们可能想针对当前项目禁止这种检查。 最
阅读全文
摘要:详细信息和变更请参考github首页,变更、更新等不再同步到此页面。 这是一个使用C#格式化字符串风格来格式化C++字符串的库,它是类型安全的、多线程安全、可乱序、高效的的格式化库。本项目支持几乎常见所有主流编译,无论有无C++ 11支持都可以。我使用Visual Studio 2008/2010/
阅读全文
摘要:#include <iostream> #include <windows.h> #include <tchar.h> #include <string> #include <cassert> #include <functional> typedef std::basic_string<TCHAR
阅读全文
摘要:#include <iostream> #include <windows.h> #include <tchar.h> #include <string> #include <cassert> typedef std::basic_string<TCHAR> StringT; bool IsDriv
阅读全文
摘要:#include <iostream> #define __GEN_STRING_IMPL(x) #x #define __GEN_STRING(x) __GEN_STRING_IMPL(x) #define __GEN_LOCATION_STRING() __FILE__ "(" __GEN_ST
阅读全文
摘要:这篇文章是关于UnrealSharp开发过程中,支持使用Visual Studio调试集成到UnrealEngine5中去的C#代码的总结。 关于UnrealSharp: https://www.cnblogs.com/bodong/p/18063520 最近在测试将mono嵌入到C++应用程序中,
阅读全文
摘要:这里例举了两种方案,一种是基于C++ 17的constexpr,实现起来更精简。另外一种使用传统的方式,C++ 11就可以用了。 另外C++11的方案也是一种计算不定参数模板参数个数的方法。 1 #include <iostream> 2 #include <string> 3 4 // in C+
阅读全文
摘要:中文报错: LNK1327: 运行 mt.exe 期间出错 原因本质上并非mt.exe的问题,是因为其它前置错误导致的。mt.exe应该是生成Manifest文件用的 ,因此可以先临时性的关闭Manifest生成,然后将错误处理完,再打开就不会有问题了: 是 >>> 否 如果解决完前置错误后打开还有
阅读全文
摘要:#pragma once extern "C" { int TestAdd(int a, int b); extern int TestAdd3(int a, int b); __declspec(dllexport) int TestAdd4(int a, int b); __declspec(d
阅读全文
摘要:本身可以通过关闭C++异常支持,rtti支持来减少代码段的大小,使用如下的命令行参数:-fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables 但是有时候却并不能彻底关闭,比如说unity引擎开发的ios游戏,il2cpp后
阅读全文
摘要:// ExtraPdbName.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <windows.h> #include <cstdlib> #include <cstdio> struct PdbInfo {
阅读全文
摘要:先上一个简单代码: #include <cstdlib> #include <cstdio> // native apis extern "C" { typedef void (*CallbackFunction)(int value); CallbackFunction GlobalFunctio
阅读全文
摘要:// 在mono源代码层级中加如下两个api 可以获取堆栈字符串 这两个api我新加的,原来没有。基于原来的代码改的。 // add by bodong#if PLATFORM_WIN32 __declspec(dllexport) GString* __stdcall mono_debugger_
阅读全文
摘要:#pragma once #include <map> #include <vector> struct FunctionCall { DWORD64 Address; std::string ModuleName; std::string FunctionName; std::string Fil
阅读全文
摘要:最近重启了这个项目,修复了bug,优化了代码,请参考新的说明文档。 https://www.cnblogs.com/bodong/p/18265413 这个是很久之前写的,去年总结了一下,将其单独提取出来,作为一个开源库放到了GitHub上,然而CPPFormat之类的名字都已经被抢注了,结果只好注
阅读全文