- 論壇徽章:
- 0
|
有時候未必能找到linux下的庫,這個時候調(diào)用win32的DLL就有點用了。不過這是有條件限制的:
就是: 僅僅在i386下能行的通。
方法嘛:
1、比較簡單的是就行 wine一樣,使用winegcc來編譯就可以調(diào)用DLL了,不過需要依賴于wine的庫,并且wine有依賴于X11的庫,未免有些大了。
2、復(fù)雜一些就是像Mplayer那樣,把PE文件的裝載從wine源碼里面提取出來,或者自己另外寫吧。這樣雖然程序顯得很NATIVE, 但是限制就更大了: 需要根據(jù)自己的情況來處理DLL的導(dǎo)入函數(shù)。假如DLL本身依賴太復(fù)雜,那么工作量就很大的了,如果調(diào)用了很多的KERNEL32.DLL函數(shù)就更棘手了。
個人寫了一套加載PE文件的庫,測試過了,可以成功的加載COOk.dll, 和drvc.dll來來解碼rmvb, 然后使用本地SDL庫來播放。libmpg123.dll的庫調(diào)用也很正常。
代碼就不放出來了,畢竟用處不大。
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u2/69656/showart_2008308.html |
|