C++
文章平均质量分 74
天富儿
这个作者很懒,什么都没留下…
展开
-
Unity使用的C++动态库回调C#函数
Unity使用的C++动态库回调C#函数引言C++C#参考链接引言之前分享了一个文章:Unity显示C++动态库中的Log,其中使用到的主要能力就是,由C++动态库回调C#函数达到的。这里我再对该功能进行专门的记录,并使用上面的这个文章做例子。C++首先,C++动态库中,先声明一个函数指针。typedef void (*Log)(char* message, int iSize);接着声明一下该指针类型的变量。Log g_log;如果需要将从C#传过来的函数地址全局保存,让其他的类都可原创 2021-12-31 15:23:56 · 3184 阅读 · 1 评论 -
C++的size_t与int的区别
C++的size_t与int的区别`size_t`为什么有时候不用`int`,而是用`size_type`或者`size_t`原文链接size_tsize_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。在32位架构中被普遍定义为:typedef unsigned int size_t;而在64位架构中被定义为:typedef unsigned long size_t;size_t在32位架构上是4字节,在64位架构上转载 2021-12-29 17:26:29 · 721 阅读 · 0 评论 -
std::vector的几种遍历方式与效率比较
std::vector的几种遍历方式与效率比较遍历方式一方式二方式三方式四方式五效率分析h文件cpp文件测试函数的类和宏测试结果解析原文链接std::vector是我在标准库中实用最频繁的容器。总结一下在遍历和创建vector时需要注意的一些地方。遍历在不考虑线程安全问题的前提下,在C++11中有五种遍历方式。方式一for (size_t i =0; i < vec.size(); i ++){ int d = vec[i];}方式二size_t len = vec.siz转载 2021-12-27 17:04:18 · 6740 阅读 · 0 评论 -
C++11编译警告:warning: ISO C++11 does not allow conversion from string literal to ‘char *‘
C++11编译问题:warning: ISO C++11 does not allow conversion from string literal to 'char *'在新写的采用C++11标准的编译器里,进行编译以后,原来没有任何提示的语句,竟然出现如下警告:char *pName = "NULL";warning: ISO C++11 does not allow conversion from string literal to ‘char *’我虽然知道这个是指针指向了不可修改的常转载 2021-12-27 16:41:43 · 4122 阅读 · 0 评论 -
Unity显示C++动态库中的Log
Unity显示C++动态库中的Log引子C++部分头文件UnityDebug.hpp源文件UnityDebug.cppC++中的使用Unity的C#代码Unity端的使用逻辑原理参考链接引子需求是Unity的项目调用C++动态库的逻辑,并进行调试,这时就需要能够通过Log,观测C++动态库中的逻辑是否正常运行。这个需求的底层逻辑其实就是,在C++中做一个“信息发送器”,C#中有一个“接收器”。在Log信息时,就是C++将Log内容,发送给C#,从而在Unity中显示出来。该文章中的代码经过实际项目检原创 2021-12-24 18:12:11 · 3478 阅读 · 0 评论 -
C++项目中的extern “C“关键字
C++项目中的extern "C"关键字引言`#ifdef _cplusplus`/`#endif _cplusplus`及发散`extern "C"`extern`关键字`"C"`小结`extern "C"`C和C++互相调用C++的编译和连接C的编译和连接C++中调用C的代码C中调用C++的代码C和C++混合调用特别之处函数指针原文链接引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:#ifdef __cplusplusextern "C" {#endif /*...*/转载 2021-12-24 17:01:45 · 332 阅读 · 0 评论