- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 32位程序移植到64位需要考虑的问题
概述从32位到64位,根本性的区别在于两种数据类型发生了变化:long和pointer。在32位环境下,两者长度都是32位,也就是4个字节;而在64位环境下都是8个字节。所以当你把pointer或者long型数据赋给int型时,会发生数据截断(data truncation)。1、32位与64位数据模型之间的区别32位应用的数据模型我们称作ILP32(之所以这样命名,是因为int,lo
2014-02-23 23:29:31 4153
原创 DLNA开发——libupnp和PlatinumKit基础库对比
最近在开发DLNA功能,网络上出现了相关功能的各种开源库,我也研究了两个开源的基础库libupnp和PlatinumKit,但最终选择的是PlatinumKit基础库。我把两者的特点记录下来,希望对正在研究DLNA功能的人有点帮助:1、libupnp和PlatinumKit都是基于UPNP规范的,所以在开发过程中最好下载最新的规范文档,也有助于实例代码的阅读2、libupn
2014-01-23 18:25:26 8206 1
原创 链接ffmpeg静态库出现undefined异常
在做一个项目时,需要用到音视频封装格式信息,就使用ffmpeg源码编译出静态库,然后链接到程序中。但在编辑SConstruct文件时,没关注ffmepg相关几个lib库的先后顺序,出现很多undefined错误。 最后通过上网查询原因,了解到ffmepg的几个库链接时是有先后顺序的,调整几个库的顺序之后最终链接通过。之后我想了想这几个库 的顺序和一个音视频文件的解析顺序差不多一致,首先是解析音视频
2013-10-13 01:15:05 2486
原创 C++和C混合编程——windows已在XX.exe中触发一个断点
进来开发一个新功能需要使用C++和C混合编程,这其实也不难,相关方法网络上已经有详细的讲解。我遇到的问题就是编译,链接都没有问题,但在运行时出现【windows已在XX.exe中触发一个断点,其原因可能是堆被损坏,这也说明xx.exe中或它锁加载的任何dll中有bug】。其中C写的代码是一个动态链接库,这个问题就是我将C的编译选项由【使用MDd(多线程调试 DLL)】运行时库修改为【使用MTd(多
2013-09-29 13:41:22 2011
原创 通过修改linux系统默认的TCP或UDP mem大小解决开发板播放流媒体片源卡顿或马赛克问题
背景:在开发板上对接流媒体服务器时,遇到非常高清(码率20M)的片源,服务器推流速度非常快,在开发板上播放时经常出现卡顿(TCP)或者马赛克(UDP)的情况,在网上搜索及分析网络包之后,通过修改开发板系统默认的TCP或UDP套接字mem的大小(主要是接收数据的mem大小)之后问题得到解决,前提是socket数据接收线程已经非常高速运转了,不存在阻塞情况。解决方案:
2013-08-19 17:48:37 7609
转载 VS2005 编译的exe运行出现 0x00905a4d 处未处理的异常: 0xC0000005: 读取位置 0x00905a4d时发生访问冲突
背景:在VS2005编译C++文件,其中用到C写的动态链接库。编译链接都没有问题,但运行exe时运行到动态链接库中函数时,弹出0x00905a4d 处未处理的异常: 0xC0000005: 读取位置 0x00905a4d时发生访问冲突【注:错误地址因程序不同会有所不同】。这说明动态链接库编译的有问题,然后检查动态链接库编译选项,果然在链接器-》调试-》调试信息设置为 【否】 导致出现问
2013-08-19 15:55:10 3999 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人