memset,memcpy报错
来源:互联网 发布:mac跳过打开软件验证 编辑:程序博客网 时间:2024/05/22 10:10
Error处理:Invalid arguments ' Candidates are: void * memcpy(void *, const void *, ?)
JNI开发的过程中遇到的问题。
现象如下:
在包含的头文件中也看到函数的原型,如下:
错误提示中:Invalid arguments,意味着参数无效,很明显是size_t这个参数不被正常识别造成的。
源于此分析,那么凡是使用size_t类型参数的方法均会出现这个问题,例如:resize memset,memccpy,memchr,memcmp等。
鉴于此,要解决这个问题,思路有二,第一:使用其他方法进行替代,不使用memcpy,malloc,memset方法。第二:让系统能够正常识别size_t类型,此为根本解决此问题之道。下面就两种思路各提供详细解决方案。
第一:替代法
可以使用new、strcpy来替代malloc、memcpy;这里针对malloc,memcpy两个方法,其他方法可以自己找相应的方法来替代。
例如:
原来为:
可以改为:
第二:让系统能够识别size_t类型
方案如下:
右击项目工程properties -> C/C++ General -> Paths and Symbols。
选择 "Includes" 标签
F:\Android-ndk-r9b\platforms\android-19\arch-arm\usr\include
F:\android-ndk-r9b\toolchains\arm-Linux-androideabi-4.8\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.8\include
主要是这一句,因为OpenCV教程配置里原来没有加这么一句。
如此,该问题可解。备注说明:
还可在将以下两个头文件库添加到项目的include中:
F:\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\include
F:\android-ndk-r9b\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include
- memset,memcpy报错
- Memset memcpy
- memcpy,memset
- memcpy/memset
- memset memcpy
- memset & memcpy
- memset(),memcpy()
- memcpy报错
- memset ,memcpy 与strcpy
- memset、memcpy的使用方法!
- memset strcpy memcpy 比较
- memcpy、memset的实现
- Memset Memcpy strcpy
- memset / memcpy 函数
- strcpy,memcpy,memset区别
- memcpy / strcpy / memset
- memset memcpy strcpy
- memcpy 和 memset
- SharedPreferences的简单封装
- 使用Linq的Intersect与Except方法的实例
- 自定义表单输入验证jquery,validate,增加自己的方法,验证完并保存写入数据库
- jquery.page.js实现ajax无刷新分页
- Shell脚本监控Linux系统CPU使用率
- memset,memcpy报错
- Angular.js 学习笔记 整理一
- [bzoj2223][Coci 2009]PATULJCI 主席树
- 基于相关关键字搜索引擎优化的网站排名分析项目
- Git学习笔记
- 如何利用命令获取JNI签名
- OCR开源库Tesseract汉字识别训练
- 布尔检索和向量空间模型——nlp基础学习笔记
- java synchronized