c++
guanguanboy
这个作者很懒,什么都没留下…
展开
-
C++11多线程学习总结
//保护共享数据,操作时,某个线程 需要用代码把共享数据锁住、操作数据、解锁,其它想操作共享数据的线程必须等待解锁,然后才能锁定、操作,解锁。一,互斥量的基本概念互斥量是一个类对象。理解成一把锁,多个线程尝试用lock成员函数来加锁这把锁头,只有一个线程能锁定成功,对于没有锁定成功的线程,流程卡在lock这里不断的尝试加锁这把锁头。//互斥量使用要小心,保护数据不多也不少,保护的少...原创 2020-05-06 10:30:55 · 240 阅读 · 0 评论 -
一个 将一个无效参数传递给了将无效参数视为严重错误的函数 及写入位置时发生访问冲突的问题的解决
我的应用大体功能是这样的,使用opencv的接口,从摄像头实时读取color数据显示,并完全保存所有视频到硬盘,已经点击按钮之后将当前的数据帧保存为图片存储到硬盘。第一个错误:第二个错误:void FaceCapture::showColor(cv::Mat colorFrame){...原创 2019-09-04 18:00:45 · 28984 阅读 · 1 评论 -
关于lock_guard
lock_guard的官方解释请参考:http://www.cplusplus.com/reference/mutex/lock_guard/Alock guardis an object that manages amutex objectby keeping it always locked.On construction, themutex objectis locked ...原创 2019-09-03 11:48:21 · 2285 阅读 · 0 评论 -
C++ 函数指针相关
c语言函数指针的定义形式:返回类型(*函数指针名称)(参数类型,参数类型,参数类型,…);c++函数指针的定义形式:返回类型(类名称::*函数成员名称)(参数类型,参数类型,参数类型,….); c++函数指针使用举例:#include <iostream>using namespace std;class test{public: test...原创 2019-05-21 20:09:21 · 234 阅读 · 0 评论 -
c++ list 操作时发生A/libc: Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 2927错误
classPostureListener;map<int, list<PostureListener> > myMap;list<PostureListener> mylist;myMap[10] = mylist;list<PostureListener>& ref =myMap[10];for(list<...原创 2019-05-24 17:20:09 · 713 阅读 · 0 评论 -
java.lang.UnsatisfiedLinkError: dlopen failed: library "xxx.so" not found
今天在开发中遇到了标题中的问题。场景:我的app依赖于一个用c++开发的so库,然后在app的CmakeLists.txt中也依赖了这个库,如下:target_link_libraries( # Specifies the target library. native-lib xxx #...原创 2019-05-10 18:06:04 · 25503 阅读 · 8 评论 -
Android Studio NDK JNI 使用第三方SO库时提示error: undefined reference to
当前问题的场景:1,我有一个共享库sharedlibrary.so, 这个共享库是使用c++语言编写的,我使用Android studio 编出来的,这个共享库里有很多函数:function1,function2,function3等等。2,现在需要搞出一个app,来验证该共享库的功能,于是我使用AS新建了一个支持c++的工程。在工程中的native-lib.cpp文件中,我包含了shar...原创 2019-05-09 20:05:37 · 6676 阅读 · 3 评论 -
为什么头文件中使用extern "C" 时,采用的时条件编译的方式
原因:为了让头文件即可以被C程序调用,也可以被C++程序调用,下面是详细解释:最近经常看到头文件中有#ifdef __cplusplusextern "C" {#endif.......#ifdef __cplusplus}#endif这样的语句,一直搞不清楚是什么意思,今天终于闹明白了。1.这种写法的由来C++比C晚出现,C++代码如果能够...转载 2019-04-29 19:28:08 · 1210 阅读 · 0 评论 -
Windows DLL 与Linux SO库导出符号比较
Windows DLL或者Linux SO库中定义的函数分为内部函数和导出函数,导出的函数供其它程序模块调用。在DLL中,在导出函数声明时,在函数前面加上_declspec(dllexport)关键字即可导出函数。在SO中,也有类似的控制参数:-fvisibility=default|internal|hidden|protected需要了解的是,在Linux下,源文件中的所有...原创 2019-04-29 19:14:12 · 1055 阅读 · 0 评论 -
SDK中通常都包括什么内容
首先,如果有说明文档和实例代码是最好的。说明文档中最好能列出C语言中所有对外函数的说明及使用方法,C++和java中所有对外的类的说明及使用方法。其次,不管是什么语言或者系统的SDK都应该有一个Include目录,里面包含对外的头文件。再次,也是最重要的,必须要包含library,SDK的功能实体是由各种类型的library完成的,主要是动态库。下面针对不同的语言,详细说明一下。C...原创 2019-04-29 14:35:25 · 4329 阅读 · 0 评论 -
c++ stl存储对象还是指针
分析一下STL里面工作方式--拷贝进来,拷贝出去对于内建类型(int float char等),容器的工作方式是纯粹的位拷贝,这里没有什么需要多说的。对于自定义的对象,容器容纳了对象(比如通过insert或push_back等),但容器中存放的对象不是你给它们的那个对象,因为两个对象在内存中的位置不一样。此外,当你从容器中获取一个对象时,你所得到的对象不是容器里的那...原创 2019-04-16 10:39:31 · 1516 阅读 · 1 评论 -
C++ 64位无符号整型的输出格式
xnLogWarning(XN_MASK_SENSOR_READ, "Rotation coast %llu miliSeconds", nEnd - nBegin);%llu 是64位无符号整数的输出格式。原创 2019-03-28 11:06:13 · 5140 阅读 · 0 评论 -
名字空间模块化
名字空间将一组逻辑上相关的定义和声明组织在一起,形成了一个模块。是模块化程序设计的一个重要用途。名字空间的成员声明一般放在头文件中,成员的定义可以放在单独的源文件中。在需要使用名字空间成员的源文件中包含头文件,也可以使用using声明和using指令,简化名字空间成员的使用语法。 使用名字空间的成员要加上名字空间的名字和作用域解析符号(::)作为前缀,例如:rectangle:...原创 2019-01-15 15:14:57 · 214 阅读 · 0 评论