存档在 ‘IT’ 分类

编译错误:unresolved external symbol “void __stdcall HidD_GetHidGuid

2010年4月19日

将#include ”hidsdi.h”改为
extern ”C”
{
#include ”hidsdi.h”
}
可能库hid.lib是C风格,不是C++风格的。C++风格的可以支持函数重载,所以,编译期间的C++函数名会加上类型修饰部分,看起来有很多@?这样的字符,而C风格的,不支持函数重载,编译期间的函数名与原来的函数名一样。

Couldn’t open mixer device

2009年12月29日

在初始化音频设备时,出现如下错误:Couldn’t open mixer device /dev/sound/mixer

检查后发现是默认环境为开发板,因而出现了路径不匹配,可以添加符号链接解决。

查看发现PC端mixer目录为 /dev/mixer,而程序需要/dev/sound/mixer目录,为解决问题,则在/dev下建立sound/目录,并创建/dev/mixer的链接:ln ../mixer mixer 并且修改/dev/sound/mixer的属性:chmod 777 mixer.重新运行又出现问题:Couldn’t open mixer device /dev/sound/dsp,解决方法和前面一样。

反码补码与绝对值

2009年11月20日

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

0的原码、补码都是0,正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加1。

 

举例:

1的源码:0000 0001        -1的源码:1000 0001

1的反码:0000 0001        -1的反码:1111 1110

1的补码:0000 0001        -1的补码:1111 1111

 

注意:计算机储存有符号的整数时,是用该整数的补码进行储存的。

因而:负数的绝对值=负数的补码取反然后加一;

即:若X<0,则 |X| = ~X + 1 ,此处X 在计算机中储存时是补码。

基于万亿次集群的matlab并行平台构建与FDK重建算法的并行实现

2009年11月19日
【摘要】:正引言:CT图像的三维重建是目前CT研究的热点之一。三维重建算法已有较为成熟的描述,实际的应用难点主要集中在计算规模与计算效率上。在以往的研究中,发现当计算规模达到一定量后,普通PC机甚至是GPU技术都难以完成较大规模的三维重建计算。本文基于万亿次集群计算机,构
【作者单位】:国家数字交换系统工程技术研究中心
【分类号】:TP338.6
【正文快照】:
引言:CT图像的三维重建是目前cT研究的热点之一。三维重建算法己有较为成熟的描述,实际的应用难点主要集中在计算规模与计算效率上。在以往的研究中,发现当计算规模达到一定量后,普通PC机甚至是GPU技术都难以完成较大规模的三维重建计算。本文基于万亿次集群计算机,构建了
全文下载: CAJ格式 (推荐) PDF格式

系统V共享过程中须注意问题

2009年11月9日

V系统贡献原理及其详细介绍请点击这里查看,本文不作详解。http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index2.html

需注意:

1.指定共享文件:如/etc/shm/shmtest  此处shmtest需要自己建立;

2.创建IPC通讯ID值:key=ftok(char * fname,int id),fname就时你指定的文件名,id是子序号,值为1-255之间。

» 阅读更多: 系统V共享过程中须注意问题

显卡电容爆掉

2009年10月31日

这几天电脑突然出现一个现象多次:鼠标突然卡住,不能移动,然后显示屏闪一下,或是突然黑屏,然后又恢复。
» 阅读更多: 显卡电容爆掉

几种音频格式码率与复杂度

2009年10月21日

AC3:
算法比较复杂。AC3的数据流量(也就是音频码率)标准的是384kbps,它还兼容两声道的立体声和单声道等,AC3两声道码率只有128kbps,这其实就是MP3的声音数据码率。最高细节的AC3标准,码率在448kbps,因其压缩合理,体积不大,所以被DVD广泛采用作为电影音频的存贮标准。
MPA:
MPA是一種不包含視頻的音頻格式,源於MPG格式,屬於MPEG1的壓縮形式。 MPEG-1文件格式包含MPEG音頻第一代,MPEG-1的第二代和第三代(也稱MP3)。
» 阅读更多: 几种音频格式码率与复杂度

Linux系统内存共享

2009年10月20日

        最近用到内存共享,收集整理了些资料,做了个简单的对比,详细的原理、应用及例子请点击表格下面的连接。

  mmap系统调用 系统V共享内存
获取共享

内存ID

#include <sys/mman.h>

fd=open(name ,flag,mode);

if(fd<0)

  ….

#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);

 

映射内存 ptr=mmap(NULL,len, PROT_READ|PROT_WRITE, 

MAP_SHARED , fd , 0); 

 

void *shmat( int shmid , char *shmaddr , int shmflag );
解除映射 int munmap( void * addr, size_t len ) ;

 

int shmdt( char *shmaddr );

使进程中的映射内存无效化,不可以使用。但是保留空间

其它 同步:

int msync ( void * addr , size_t len, int flags);

 

控制:

shmctl( shmid , IPC_STAT , &buf ); 

// 取得共享内存的状态
shmctl( shmid , IPC_RMID , &buf ); 

// 删除共享内存–删除共享内存,彻底不可用,释放空间

  » 阅读更多: Linux系统内存共享

获取操作系统语言实现自动切换多国语言

2009年9月30日

以下是一个简单的例子:

<HTML>
<head>
<script>  
    
    var usr_language =navigator.userLanguage;
   var languagetype;
   var zhcn=’zh-cn’;
   var zhhk=’zh-hk’;
   var zhtw=’zh-tw’;
   var enus=’en-us’;
» 阅读更多: 获取操作系统语言实现自动切换多国语言

VMware下linux磁盘空间扩容

2009年9月26日

今天在搭建编译环境时,发现之前给虚拟机分配的15G空间只剩下2G多点,而新的平台搭建起来需要2G左右,这样空间就严重不足了。

决定给虚拟机扩大硬盘分配,却发现在VMware的setting中无法扩容,但是在VMware的安装目录下发现有vmware-vdiskmanager.exe(虚拟硬盘管理)程序,绿色版本的VMware可能没有。双击运行一闪而过,再次在CMD中以命令方式运行,发现其有许多参数,-c -d -k -n -p -r -x -R -q等,查看其说明,-x选项既是扩容选项:expand the disk to the specified capacity,需注意这里是指扩容到指定大小, » 阅读更多: VMware下linux磁盘空间扩容