6 Mr_L_Y

尚未进行身份认证

我要认证

我比较懒~

等级
TA的排名 4w+

VS2019 C++安卓控制台程序开发

前言之前有介绍过在VS上开发安卓的.so, VS也提供了内嵌的项目模板, 非常简单. 唯一的不足之处在于, 开发的.so总得要配合某个APK来调用进行调试, 与我们开发PC应用很不同, 不能在控制台直接观测程序运行结果.能否在安卓上直接开发控制台应用呢? 答案是肯定行. 这个我也给VS的团队提过意见, 希望能够补充这一块的项目模板, 毕竟安卓的C++和Java应用都有了, C++的.so, .a库也有了, 唯独缺少了控制台应用. 但是人微言轻, 目前也没啥进展, 所以就提供下我自己的方法, 用于安卓

2020-08-13 01:11:35

RGB图像上的密文--违规数据隐藏

前段时间想发公司的内推广告,被CSDN审核不通过。于是我就想,怎么能把我想要的数据隐藏到一张图片里。数据的格式字符串是我们日常最常用的数据形式,这里先看下一个字符串的数据是怎么保存的。比如这个字符串:"I'm something,but nothing."Char Print of String:I'm something,but nothing.I ' m s o m e t h i n g , b u t n o t h i n g .Byte Print of Stri

2020-07-16 00:45:07

VS2019 团队资源管理器--Git的使用(二)

上一篇文章其实写到一半, 因为很多操作没法在我刚创建的代码仓库上进行演示, 我得弄一堆分支或者commit. 这篇先把上一篇没有讲解的操作补全.准备本来这篇想以opencv的仓库为例子来进行演示, 但是我Clone了一下发现速度只有几十k. 所以还是想解决下这个Github的Clone速度问题.如果在取消Clone以后VS是这样一直在取消中:那么就去任务管理器中把所有的Git for windows给结束掉:结束后会有以下的提示:这个没什么问题, 感觉是VS陷入了死.

2020-07-03 22:44:37

VS2019 团队资源管理器--Git的使用(一)

前言这篇要讲的是团队资源管理器, 简单的来说就是Git for VisualStudio.我们在Windows平台上使用的Git软件是Git for Windows, 官方的有两个打开方式: bash和GUI, 如下所示:其中bash就是网上最常见的命令行式的打开方式, git clone git checkout..这些命令都是在bash中使用的. GUI也还能用, 就是界面简陋了点.除了官方的这套工具以外, GitHub自己写了一套GithubDesktop的工具, 用来作为Wind

2020-06-27 18:42:03

VS2019 VC++ 静态库的开发与使用

前言这篇文章应该写在这个系列里面的:VS2017的C++开发心得(九)DLL动态链接——多项目开发。但当时没写,只写了动态链接的相关内容,是因为我认为静态链接相比较动态链接会简单得多,所以干脆就略过了。既然有人提问了,那我就简单的开发流程和主要遇到的问题来讲讲静态库的开发。首先总体来看,静态库和动态库的区别在于:1. 静态库只出现在项目的编译生成的链接期,而动态库则是程序运行时加载使用的;2. 静态库只有一个.lib文件,而动态库除了一个.dll文件以外一般还有个对应的.lib文件;

2020-05-09 21:40:19

VS2019 C++的跨平台开发——Cmake项目(二)

这一篇主要补充Windows下WSL(Linux 子系统)和远程Linux服务器的CMake项目编译运行。Widnows下创建WSL1. 右键左下角的Windows图标=》应用和功能=》启用或关闭Windows功能2. 选中“适用于Linux的Windows子系统,确定3. 安装结束后,应该需要重启一次。4. 打开Windows应用商城,没有固定在这里可以在开始菜单搜索...

2020-05-08 20:37:50

VS2019 C++的跨平台开发——Cmake项目(一)

最近正好用到,感觉很好用,所以分享出来。1.创建Cmake项目这里的解决方案和项目的概念和VC++项目的一样,解决方案就是项目的合集,项目是对应每一个静态库,动态库和可执行文件的编译目标。创建完成:我建议一定要把上图红框的两个内容看一遍。CMake相关的知识我都会带过,因为内容太多了就很难写。下面内容看不懂的一定要看这两个文档。2.文件结构讲解首先是文件夹视图,...

2020-03-29 12:16:32

从小米10发布来看编译优化

这篇文章的起因是有人跨界要来锤桌面CPU :看到新闻的第一感觉就是你在侮辱我的智商,第二感觉就是来自Windows程序员的愤怒。准备通过Google搜索了FFT+AGM+PI,最终确认小米用的是这个代码:http://www.kurims.kyoto-u.ac.jp/~ooura/pi_fft.html。下载后大概是这样的:这是win32bin下面的预编译好的exe。 ...

2020-02-15 15:26:30

VS2019 C++的跨平台开发——Linux开发

前言由于前段时间正好买了一个服务器来跑Tensorflow的推理模型,所以借这个机会把Linux的开发也一并补上。先声明我的服务器是Ubuntu16.04,下面文章的内容也是基于Ubuntu16.04的。为什么标题要写Linux呢?原因是我也开发过Raspbian(Debian)和CentOS,这些系统除了安装软件插件命令有些变化以外,开发过程并没有什么不同,应该可以通用。这部分内容我...

2019-11-11 22:08:14

VS2019 OpenCV的Windows工程到安卓的移植

前言本篇是应一个读者的请求,而且这种需求应该还是蛮多的:刚入职或者刚进实验室的新人,接手一套C++算法工程,现在老板让你移植到Android上。全部用Java重写,当然是不现实的。本文将介绍一种尽可能简单的移植方法。本文使用的软件版本如下:VisualStudio 2019 16.3.5 AndroidStudio 3.5 NDK-r16B Android SDK 21 Ope...

2019-10-23 20:17:24

Unity3d 安卓开发问题总结

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

2019-09-17 22:08:15

欢迎回到现代C++

现在C++的岗位几乎都要求会使用C++11以后的标准,正好微软官方有一章就是讲的“Welcome Back to C++ (Modern C++)”,我这里主要在内存方面介绍下。具体请看看官方文档: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.先打开VS installer​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内部的Power Shell2.打开以后应该如下图所示,首先输入dumpbin查看下用法:3.使用 /Exports 参数查看DLL的导出函数符号顺便再讲下关于调用约定和函数符号的关系,即_stdcall,_cdecl.还有就是extern "c"对函数名符号的影响...

2019-06-25 23:21:02

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

这一篇才正式进入正题,怎么导出类和开发API?其实导出类很简单,如下://CTest.h#pragma once#include "DLL.h"class API CTest{public: CTest(int* _buf,int _size); ~CTest(); int* Reverse(); static int InstanceCount;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

查看更多

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