2012-01-15 1 views
1

私は自分自身を教える過程にあります(Javaから来ています)。私は多くの言語に感謝し、私がそれを学んでいる主な理由の1つは、Javaに組み込まれたJNI機能を利用して、必要なときにネイティブコードを書くことができるということです。私の質問は主にWindows APIに関するものです。 Cのみを使用してAPIの機能や機能を使用できますか?Cのみを使用してWindows APIを利用できますか?

Windows APIは純粋なCコードと互換性がありますか、それともC++コードでしか使用できないクラスなどがありますか?

また、Windowsマシン上で(lib.sl NOT lib.dll)共有ライブラリをコンパイルした場合、別のマシン(Mac/Linux)でも動作するのでしょうか?

+4

Win32 APIは純粋なCです。 –

+1

非常に良い選択です。あなたがアセンブラレベルに落としたとき、あるいは何人かのVerilogに落とすときに教えてください:) –

+1

@VladLazarenko私たちはここで、Vlad、他の誰が重い持ち上げをするだろうより多くの人々が必要です! ;):P – ScarletAmaranth

答えて

7
  1. Windows API(別名Win32 API)は純粋なCライブラリです。
  2. Windows ABIをサポートするソフトウェア(WineまたはReactOSなど)がない限り、Windows以外のマシンでWindows共有ライブラリを使用することはできません。
+0

...別のWindowsマシンで使用することもできます。すなわち、異なるアーキテクチャ上にある。 –

+0

@VladLazarenkoは非常に頻繁にですか?ポータブルではないもののリファレンスがありますか? –

+0

@cli_hlt Bummer!あなたが1つのプラットフォームだけを所有している場合、Cとの移植性の欠如が嫌いです。 WindowsマシンからUNIX用の共有ライブラリを作成する方法はありますか? – bgroenks

0

他の人が指摘しているように、Win32 APIは純粋なCです。一度それを保留にすると、オペレーティングシステムの仕組みに関するすべてがわかります。通常、他のオペレーティングシステムでも同様のケースです。 MFC/COM +またはJavaラッパーの後ろにいる場合は、優れたプログラムを作成することができますが、それは全く反対です。

関連する問題