Windows 用のアプリケーションの作成について質問があります。ANSI C でプログラミングする場合、WinAPI と DWMApi (エアロ グラス、リボンなど) を使用できますか? 私は今 MSDN を見ていますが、彼らは c++ を使用しています。
3 に答える
WindowsAPIはCAPIであり、「標準」の呼び出し規約をサポートする任意のコンパイラで使用できます。
ただし、Microsoftは、独自のCコンパイラをライフサポートに配置するという戦略的決定を下しました。VisualStudioを使用すると、C90(特定の拡張機能を含む)に固執します。より現代的な言語の方言をサポートするサードパーティのコンパイラ(MinGW経由のGCCおよびClang、Pelles C)を使用できます。
Win32 APIには、さまざまなツールセットからアクセスできます。私が今まで出会ったWindows用のすべてのCコンパイラは、すべてのWin32APIを呼び出すことができます。さらに、これらすべてのCコンパイラはCOM APIを呼び出すことができ、C++中心のライブラリであるGDI+も呼び出すことができます。しかし、MSはCクライアントが使用するためのブリッジを提供しました。
したがって、要約すると、Cを使用することを選択しても、Win32のどの部分にもアクセスできなくなることはありません。
それを試してみてください。
ほとんどの API は実際には C-API です。「誰も」もうCを実際に使用していないため、C++と呼んでいます。また、追加の関数がアタッチされた構造体が時折あることにも気付きましたが、Win32 では確実にそうではなく、C では #ifdef だけかもしれません。
私がすぐにはわからないのは、ヘッダーが C だけで使用された場合に「安全」であるかどうか、およびライブラリーにマングルされていないシンボルがあるかどうかです。私は彼らがそうだと思いますが、決して知りません。ただし、単一の Win32 API 関数を呼び出すだけの単純な C プログラムを作成すると、それが明確になります。