Chinaunix首页 | 论坛 | 博客
  • 博客访问: 923684
  • 博文数量: 201
  • 博客积分: 8078
  • 博客等级: 中将
  • 技术积分: 2162
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-20 17:22
文章分类

全部博文(201)

文章存档

2013年(3)

2012年(11)

2011年(34)

2010年(25)

2009年(51)

2008年(77)

分类: LINUX

2009-07-26 20:02:58

有时候未必能找到linux下的库,这个时候调用win32的DLL就有点用了。不过这是有条件限制的:
就是: 仅仅在i386下能行的通。
方法嘛:
1、比较简单的是就行 wine一样,使用winegcc来编译就可以调用DLL了,不过需要依赖于wine的库,并且wine有依赖于X11的库,未免有些大了。
2、复杂一些就是像Mplayer那样,把PE文件的装载从wine源码里面提取出来,或者自己另外写吧。这样虽然程序显得很NATIVE, 但是限制就更大了: 需要根据自己的情况来处理DLL的导入函数。假如DLL本身依赖太复杂,那么工作量就很大的了,如果调用了很多的KERNEL32.DLL函数就更棘手了。

个人写了一套加载PE文件的库,测试过了,可以成功的加载COOk.dll, 和drvc.dll来来解码rmvb, 然后使用本地SDL库来播放。libmpg123.dll的库调用也很正常。

代码就不放出来了,毕竟用处不大。
阅读(1693) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~