>>406
> WindowsでもUbuntuでも動かせるって事は、Javaがそうであるように、Windows固有の機能を使えなくなるよ。

WindowsのAPIやマルチプラットフォームなGUIツールキットを使えるようにしておけば、異なるOSでの
共通した動作や外観を実現しながらWindows固有の機能も使えるものになるよ。
ただし、ウィンドウを表示する、線を引く、というような基本的な動作は、API等をいちいち意識する必要がないように
独自の命令/関数を用意する。

> 例えば自分の好きなDLLを呼べなくなるし、DirectXも危ない。

WindowsとLinuxの両方のライブラリを同じ書式で利用できる仕様にするだけでしょ。