七牛云存储为广大开发者提供了数据云存储的免费使用空间,对于个人开发来说完全足够了。并且提供了各种语言的SDK,方便开发。
在C++工程中使用C-SDK的时候,遇到了一个问题,下面语句在运行时,提示:0x00401005 处未处理的异常: 0xC0000005: 写入位置 0x0040ab42 时发生访问冲突
1 2 3 4 5 6 7 8 9 10 11 12 |
|
以上语句是官方文档给出的例子代码,但是我用了各种方法,都无法赋值成功,绝望……
在网上找有没有人遇到类似的问题的时候,看到了这篇问答:七牛C-SDK中,QINIU_ACCESS_KEY和QINIU_SECRET_KEY应该怎么赋值?,虽然没有给出解决方案,但是至少可以知道,七牛官方提供的C-SDK由于没有在qiniu.def
的导出变量后面加上DATA
关键字,导致无法在别的C++工程中直接修改变量值。
在回答中还看到,原来七牛还有一个Cpp-SDK,尝试下载,发现有28M,没有了继续使用的欲望。
那就继续折腾C-SDK吧。既然官方提供的C-SDK无法直接修改QINIU_ACCESS_KEY
和 QINIU_SECRET_KEY
,在不重现编译DLL和Lib的情况下(Windows下编译不方便,还得配置各种cURL和OpenSSL的头文件路径),解决方法如下:
不直接给那两个变量赋值,而是自己参考源码写生成uptoken的方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
原文作者: lslin
原文链接: http://blog.lessfun.com/blog/2014/04/01/using-qiniu-c-sdk-in-cpp/
版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0