5 Mr_L_Y

尚未进行身份认证

我比较懒~

等级
TA的排名 8w+

Unity3d 安卓开发问题总结

开发了半年基于Unity的安卓应用,项目也基本快完结了。在开发过程中遇到了很多坑,然而Unity的技术支持几乎都在英文论坛里。直接百度,真的很难解决问题。本篇对这半年的开发经历做一个总结,希望能帮助其他开发者。https://forum.unity.com/这个是Unity的官方论坛,个人认为解决技术问题很好的途径,就是回复不是很稳定,看情况,然后网络访问也不是很稳定。下面就从我在上面的提问...

2019-09-17 22:08:15

欢迎回到现代C++

现在C++的岗位几乎都要求会使用C++11以后的标准,正好微软官方有一章就是讲的“WelcomeBacktoC++(ModernC++)”,我这里主要在内存方面介绍下。具体请看看官方文档:https://docs.microsoft.com/en-us/cpp/cpp/welcome-back-to-cpp-modern-cpp?view=vs-2019先来个总纲:Modern...

2019-09-03 23:13:18

C++ OpenMP和CUDA进行并行计算时的浮点“误差”

前话前些时间考虑了下VS要不要顺便也讲下Linux的开发。最后还是决定算了:1.现在主流开发Linux的团队,比较排斥使用Windows来对Linux进行开发,虽然他们自己也承认VS开发很方便;2.Linux在VS和C++工程上和Android的基本没啥区别,唯一需要注意的要在VS的配置里面加上远程调试目标也就是Linux的IP和用户名之类的,具体参考微软官方文档:https://docs.m...

2019-08-21 00:16:27

VS2019 C++的跨平台开发——Android .so开发

这篇介绍下怎么用VS开发Android使用的.so动态链接库文件。Android环境配置1.先打开VSinstaller​2.选中C++移动开发​3.如果VS没有下载NDK和SDK的,需要在VS里面配置​​我这里用的是Unity下载的NDK,SDK,JDK。路径大概在:Unity\xxxxxxxx\Editor\Data\PlaybackEngines\Andro...

2019-07-03 22:13:52

VS2019 C++的跨平台开发——C# WPF

本篇介绍如何使用C++开发DLL给WPF的C#脚本调用。本文虽然以C#的WPF窗体应用为例子,但不限于此,.net平台都可以使用,包括Unity的C#脚本。项目准备首先VS2019相对于VS2017最明显的变化就是创建新建工程的界面,创建C++DLL工程和C#WPF如下图所示:C++项目的配置就参考之前的文章https://blog.csdn.net/luoyu51018...

2019-06-26 22:57:04

VS2019 dumpbin查看DLL的导出函数

之前有人问过ViewDLL这些软件在哪下载。实际上使用VS就可以查看DLL的导出接口。1.先打开VS内部的PowerShell2.打开以后应该如下图所示,首先输入dumpbin查看下用法:3.使用/Exports参数查看DLL的导出函数符号顺便再讲下关于调用约定和函数符号的关系,即_stdcall,_cdecl.还有就是extern"c"对函数名符号的影响...

2019-06-25 23:21:02

VS2017的C++开发心得(十五)导出类与API开发(下)

这一篇才正式进入正题,怎么导出类和开发API?其实导出类很简单,如下://CTest.h#pragmaonce#include"DLL.h"classAPICTest{public: CTest(int*_buf,int_size); ~CTest(); int*Reverse(); staticintInstanceCount;private: ...

2019-05-11 23:59:26

VS2017的C++开发心得(十四)导出类与API开发(上)

首先介绍下一个我经历过的一个大坑,工作第一年在csdn提问时被告知,如果你有两个以上的项目要共享一个类,那么就把这些类的cpp文件加入每个项目编译就行了。如果一个解决方案下有两个项目PA,PB,这两个项目都要用到同一个类CC。从之前的文章知道数据类型没问题,但是一旦涉及函数和静态变量,那么就要考虑导出的问题,否则会出现链接错误的提示。刚毕业时这些完全不懂,出现了链接错误的问题。于是我去csdn...

2019-05-11 22:07:58

从编译角度来理解C++中的面向对象

面向对象一直是C++相对于C语言的最大改进,但很多人也说不清具体体现在哪。我上学时也是一眼而过不再细想,直到现在写过很多C语言代码以后才会豁然明白为什么要面向对象编程。首先要回顾前面说过的VS2017的C++开发心得(十)头文件与重复定义符号“重定义符号”的问题。面向对象就和这个很有关系。先看两段代码,在不使用面向对象编程的时候如何避免重定义符号://////////////a.h///...

2019-03-06 00:57:23

STM32 之 HAL 库USART的DMA的使用

上一篇对于UART的使用是非常初级的。一般我也只会用来进行代码测试,不会运用到实际项目当中。因为阻塞式的询问串口数据非常占用CPU的使用率,即便每次询问1ms对于CPU来讲都是很长时间的空闲状态。上一篇讲的bug也只是出现在该情况下。因为对于串口数据的到来时间不确定,所以浪费了很多时间在等待信号。非阻塞式的串口通信主要有IT和DMA。IT是利用MCU的中断的硬件特性,就像是示波器的trig...

2019-01-26 23:16:09

VS2017的C++开发心得(十三)调试——内存溢出和内存泄漏(下)

这篇是调试的最后一篇,也是VS2017的最后一篇。这一篇主要介绍远程调试。以上两篇介绍的情况都是自己开发自己调试,而作为软件开发者不可能将系统完全开发到没有bug的程度才去发布。大多数都是一边发布,一边更新。所以,在我们发布软件到客户手上后,要能够收集用户的崩溃信息,以及能够帮助开发者解决bug的重要数据。很多软件,包括Windows系统,出现崩溃以后会有个错误汇报窗口,引导你上传错...

2019-01-21 01:20:05

STM32 之 HAL 库串口 USART 丢数据及ORE卡死的解决方案

刚装了VS2019Preview,VS2017系列应该还有最后一章就结束了,找个时间结束掉它。昨晚弄了下STM32的串口通信,发现UART在接收PC串口调试助手发送的数据的时候,会时不时卡死,不能接收新的数据。之前公司有人做这方面的项目的时候也是这个情况,当时发现UART处于ORE(overrunerror)状态,归结为波特率太高,降低波特率算妥协了。结果自己弄Nucleo的开发板也出现这个...

2019-01-16 23:11:43

Irrlicht 1.8.4中加入基于D3D9的系统字体支持

Irrlicht是一个基于C++开源的3D引擎,中文名叫鬼火引擎。成立团队现在基本走光了,只剩下一个德国人Michael还在苦苦坚持。老实讲,不推荐大家去用这款引擎,特别是商用。因为实在太老了,最高支持到D3D9,特别对字体的支持很差,对3D模型的加载支持也很差。但作为C++的3D引擎的学习材料还是可以的。由于Irrlicht自己的字体只能使用图片字体,像这样的:基本不能支持中文,所以...

2018-12-16 17:35:08

VS2017的C++开发心得(十二)调试——内存溢出和内存泄漏(中)

这篇要做一点改变,本来计划是怎么debug内存溢出,但由于内存溢出的方式各种各样,没有固定的debug方式,调试手段随机应变。所以这篇主要从内存分布来理解内存溢出问题,以及内存溢出可能造成的后果。首先看看结构体的内存分布,代码如下:#include<Windows.h>structSA{ doubledArray[2]; intt; SA() { F...

2018-12-16 13:03:21

VS2017的C++开发心得(十一)调试——内存溢出和内存泄漏(上)

VS的调试功能非常强大,一方面是覆盖面很广可以调试本地程序,也可以调试远程的Linux服务器程序。另一方面是内容很丰富,基于汇编调试之上,可以查看内存信息,线程堆栈,甚至GPU、CPU的占用情况,还有DX12的图形调试以及NVIDIA的Nsight的CUDA调试。基本满足你从开发到优化到debug到发布的所有需求。本章介绍VS下的本地程序的调试方法。本地程序的调试主要分为两种,一种是主动调...

2018-12-02 23:36:49

VS2017的C++开发心得(十)头文件与重复定义符号

之前在这篇文章VS2017的C++开发心得(四)VS的文件夹路径以及项目生成步骤中谈到过关于在cpp中定义相同类型变量名导致的重复定义。先看下什么是符号,我在main.cpp中定义了一个inttest,同时又在a.cpp中定义了一个inttest,编译会出现链接错误如下:从上图可知,符号是由变量名和类型共同组成的,所以如果我a.cpp中定义的是inttest(){...

2018-11-16 00:27:29

VS2017的C++开发心得(九)DLL动态链接——多项目开发

这一篇主要介绍在一个解决方案下如何进行多项目开发。其实开发代码都放在一个项目下也可以实现它的功能,为什么要使用多项目开发?从编程架构上来讲,树状结构是最优秀的架构。树状结构越发散,它的维护任务就越轻松。这句话的意思是:我们在进行C++工程开发的时候对每一个cpp的功能进行清楚的分割,减少不同功能的cpp文件之间的耦合性,即便当系统非常庞大的时候,维护起来也很方便。说得简单点就是分类工作一开始就...

2018-11-13 00:08:45

VS2017的C++开发心得(八)DLL动态链接——Opencv的使用

上一篇对dll的链接使用进行了粗略介绍,这一篇就以Opencv为例子介绍下怎么使用第三方库来进行程序开发。Opencv是世界机器视觉领域非常著名的开源库,里面包含了大量的图形处理算法,变换算法,匹配算法,也包括现在流行的DNN深度学习网络应用。Opencv的强大更在于它的整个库对用Opencl和CUDA的支持非常好,同样的算法,你自己写的运行速度基本没法跟Opencv的运行速度比较。首先去官网...

2018-11-11 23:15:43

VS2017的C++开发心得(七)DLL动态链接——查看依赖的外部模块

DLL的链接使用,对于每个C++工程来说应该是必须的,有些是你主动使用的,还有很多是VS后台已经链接好了的。首先介绍下怎么看你的程序使用了多少的动态链接库文件:通过任务管理器的资源监视器,我们在CPU中找到运行程序的进程,选定VSDebugConsole以后,在下面的“关联的模块中”会出现这个程序所依赖的dll文件。目前我们的项目并没有配置额外的第三方库,所以出现的关联dll都是位于sys...

2018-11-11 23:07:04

VS2017的C++开发心得(六)头文件的路径问题与属性管理器

这篇主要介绍下头文件的路径问题。首先,看看下面两个头文件引用,哪个是正确的:#include<iostream>#include"iostream"有人会推荐你用前一个即<>,其实两个都是正确的,都能正确引用到这个头文件,那么区别在哪?VS的推荐路径不同,现在VS都有一个功能叫intellisense,如下:这个主要帮我们快速完成代码,上图中...

2018-11-07 00:13:29

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。