![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Programming
ezhchai
这个作者很懒,什么都没留下…
展开
-
进程间通信(1):匿名管道
进程可以理解为一个独立的程序和其支配的内存空间,是程序运行的实体。进程拥有独立的内存空间,在两个进程间实现数据共享相对线程要困难一些。在这系列文章中,对不同的进程间数据共享方式进行说明,并通过C++实例进行实现讲解。搜索一下网上进程间通信方式,比较夸张的是说有“十一”种方法,方法虽多,但是基本原理都是相通的,一个东西不同包装而已。其实掌握主要方法,既可以应对日常的工作。本系列文章从常用方法说起原创 2017-07-11 15:10:44 · 1178 阅读 · 0 评论 -
DLL调用(1):C++静态调用DLL
DLL(Dynamic Link Library)即动态链接库,DLL文件中存放封装的函数和类,当程序需要调用DLL所定义的功能时,需要先载入DLL文件,然后取得函数的地址,最后进行调用。 通过DLL来调用功能,可实现代码的封装与复用,去除功能之间的耦合,有利于模块化。降低应用难度的同时,也可以实现知识产权的保护。 DLL文件是Windows操作系统下定义的文件,可被多种语言调用。这里首先介绍如原创 2017-12-12 18:07:49 · 9143 阅读 · 0 评论 -
DLL调用(2):C++动态调用DLL
动态调用也被称为显示调用,即在运行程序过程中,需要调用DLL中的功能时才调用。相对于隐式调用,此种方式会有明确的语句载入DLL和获取其中的函数地址,调用过程相对静态调用会复杂一些,但不需要LIB文件的支持,仅有DLL文件即可。原创 2017-12-12 18:42:07 · 9057 阅读 · 0 评论 -
DLL调用(4):JavaCPP调用DLL
JNA实际上是基于JNI封装的,其在应用的时候更加方便,但效率相对低,主要适合对实时性要求不高的场合。JNI虽然效率高,但是应用不方便。JavaCPP提供了在Java中高效访问本地C++的方法。采用JNI技术实现,支持包括Android系统在内的所有Java实现。原创 2017-12-12 20:58:35 · 2097 阅读 · 0 评论 -
DLL调用(3):Java JNA调用DLL
Java调用C++的DLL方式很多,其中JNA方式是比较通用的一种。JNA(Java Native Access )提供一组Java工具类,可实现运行期动态访问系统本地库(native library)而不需要编写任何Native/JNI代码。程序需要在java接口中描述目标native library的函数与结构,JNA即可自动实现Java接口到native function的映射。原创 2017-12-12 20:07:40 · 1874 阅读 · 0 评论 -
OpenCV3.4.1+opencv_contrib编译:windows 10
做计算机视觉的朋友,估计没有人没用过OpenCV,著名的开源计算机视觉算法库。OpenCV还在不断发展中,最新的3.4版本,已经可以支持cnn了,以后估计会有集成更多的功能。 不过,由于知识产权的原因,OpenCV将很多算法放到了opencv_contrib中,在github上,这两块代码就是分别放在不同的repository中的。 OpenCV官方提供了windows可安装的版本,已经有...原创 2018-06-03 18:00:08 · 71690 阅读 · 92 评论 -
Ubuntu16.04环境下PyCharm安装和配置
随着机器学习的日益流行,python是最常用的开发语言之一,PyCharm是非常友好的python集成开发环境(IDE),本文介绍一下PyCharm在Ubuntu系统上的安装和配置。登录pycharm官网,下载Linux下开发环境。 解压后在bin文件夹下运行pycharm.sh,即可直接使用pycharm。 打开pycharm后,需要设置python的解释器。 File-&...原创 2018-05-23 17:55:17 · 9445 阅读 · 0 评论 -
Tips:移动硬盘(U盘)中出现删不掉的文件夹,文件夹名是数字,删掉会变名字出现。
现象:移动存储设备在进行删除操作时,会产生一些文件夹,文件夹名是数字(我遇到的是4位),一般删除操作和360强力删除都无法删掉,即使偶然一次被删掉,还会改了名字出现,新出现的文件夹名也是数字。删除时提示“需要管理员权限”“文件名过长”“无法删除”等信息。分析:开始以为是病毒,用杀毒软件查杀,没有问题。后来我分析应该是windows系统对磁盘的操作错误产生的现象。有人说可以通原创 2017-11-14 14:37:40 · 21114 阅读 · 1 评论 -
FTP(1):Windows 10搭建Ftp
简要介绍在windows 10 系统下搭建Ftp服务器的过程,以及测试访问Ftp服务器的方法。原创 2017-11-01 17:51:20 · 667 阅读 · 0 评论 -
进程间通信(2):命名管道
进程间的管道通信分为匿名管道(“Anonymous Pipe”)和命名管道(“Named Pipe”)两类,匿名管道在博客文章http://blog.csdn.net/ezhchai/article/details/74974682已经进行了讨论,从上一篇文章的叙述中可以看出,匿名管道有很多缺点,比如:必须在父子进程中实现,且管道是半双工的,也就是单向的,只能一个发,另一个收。这些都给匿名管道的应原创 2017-07-11 18:19:40 · 1396 阅读 · 2 评论 -
进程间通信(3):共享内存
管道通信在我之前的博客文章中进行了讲述,管道通信有其自身的缺点,管道的缓冲区是受限的,封装的网络操作,也会影响通信的速度,操作不当很容易阻塞。共享内存操作一般被认为是最快的进程间通信方式,在系统内存中开辟一块内存区,分别映射到各个进程的虚拟地址空间中,任何一个进程操作了内存区都会反映到其他进程中。这种方式可以像访问自己的私有空间一样访问共享内存区。要说缺点,就是共享内存的数据同步比较困原创 2017-07-11 19:07:31 · 779 阅读 · 0 评论 -
Tips:解决问题“error LNK2026: 模块对于 SAFESEH 映像是不安全的。”
问题描述: VS2015生成解决方案时,链接报错“error LNK2026: 模块对于 SAFESEH 映像是不安全的。”解决方法: 1. 右击项目名称, 在快捷菜单中点击“属性”在属性页面中,点击“链接器”->“命令行”; 2. 将 “/SAFESEH:NO”输入至“附加选项”框中,然后点击“应用”,即可解决问题。原创 2017-07-19 19:52:31 · 804 阅读 · 0 评论 -
Tips:在控制台(Console)中调用CFile、CString等
问题描述: Visual Studio创建win32 console project需要调用CFile、CString等MFC类解决方法: 1. 在调用文件中添加 #include ; 2. 如果在该文件中还包含#include ,#include 应放在#include 之前,否则会报错。原创 2017-10-19 12:34:29 · 682 阅读 · 0 评论 -
Tips:Visual Studio 运行库和MFC使用的匹配
问题描述:在应用MFC组件编译程序时,报错fatal error C1189: #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]问题原因:“运行库”原创 2017-10-19 13:02:35 · 1505 阅读 · 0 评论 -
Tips:Visual Studio错误error C4996: This function or variable may be unsafe.
问题描述:Visual Studio程序报错:error C4996: 'xxxxxx': This function or variable may be unsafe. Consider using xxxxxx_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for det原创 2017-10-19 15:19:11 · 800 阅读 · 0 评论 -
Tips:C++控制程序暂停
问题描述:在控制台编程中,希望通过C++语句控制程序暂停运行。解决方法:1. windows控制台:system( "PAUSE ") 或者 Sleep() ;2. Windows/Linux(QT):getchar() 。原创 2017-10-19 15:10:17 · 1129 阅读 · 0 评论 -
Tips:error C4996: 'GetVersionExA': 被声明为已否决
问题描述:调用GetVersionEx获取系统版本报错。error C4996: 'GetVersionExA': 被声明为已否决解决方法:1. #pragma warning(disable: 4996)屏蔽掉这个警告,使得程序可以继续执行。2. Project Properties > Configuration Properties > C/C++ > Gen原创 2017-10-27 15:05:16 · 6868 阅读 · 0 评论 -
python扩展功能离线安装包下载
在使用python进行编程,会发现程序简洁,可读性强。为了实现这一点,python需要大量的扩展功能包的支持,才能一句话实现C++很多行语句实现的功能。那么,就不可避免的需要安装扩展功能包。 一般安装过程,可以通过pip在线完成,但是,当网络条件不好的时候,安装包如果过去庞大,可能在下载过程中中断。另外,如果需要选择依赖环境和版本,也要在pip命令中说明。 这时,离线安装包的列表和下载,就比较...原创 2018-06-07 10:13:07 · 2443 阅读 · 2 评论