1. 程式人生 > >問題:QT mplayer 編譯錯誤call of overloaded 'number(HWND_*)' is ambiguous

問題:QT mplayer 編譯錯誤call of overloaded 'number(HWND_*)' is ambiguous

當使用QT  Creater 編寫 基於mplayer播放器的時候。使用winId();獲取視窗ID總是編譯不過。

args<<"-wid"<<QString::number(renderTarget->winId());
因為這種寫法是用在LINUX環境下,而在window 環境下執行的QT Creater當然是沒辦法編譯的,所以想編譯上面的程式只能再Linux環境下編譯。

下面是一個從網上看到一個程式。明顯在window環境下,和Linux環境下所編譯的程式段是不一樣的。

#ifdefQ_WS_WIN
//reinterpret_cast<qlonglong>
obligatoire,winId()neselaissantpasconvertirgentiment;)
args<<"-wid"<<QString::number(reinterpret_cast<qlonglong>(renderTarget->winId()));
args<<"-vo"<<"directx:noaccel";
#else
//Surlinux,aucundrivern'aéténécessaireetpasdemanippourWid:)
args<<"-wid"<<QString
::number(renderTarget->winId());
log->append("Videooutputdrivermaynotbenecessaryforyourplatform.\
Check:http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html\
attheVIDEOOUTPUTDRIVERSsection.");
#endif