標準コードcまたはC++コードですか?彼らは何ですか?Windows API関数
答えて
元のWin32 APIはCベースです。しかし、COMベースのWindowsにはかなりの数のサービスがあります。良い例は、クリップボード、ドラッグアンドドロップ、シェル、ユーザーモードドライバフレームワーク、DirectXです。 C言語でCOMコードを記述することは技術的に可能ですが、そうすることは非常に苦労しています。
現実的には、そこにC++を使用しています。そして、元のCベースのAPIを、特にGUIコードのために苦痛を少なくするためのC++クラスライブラリ。
クリップボードとD&Dにも古いCインタフェースがあります(ただし、クリップボードなどの複数形式のサポートなどの機能はありません) – Anders
標準Windows APIはCライブラリです。ラッパーは他の言語(C++など)用に存在します。
wikipediaで読んでください。
純粋なWindows APIに対してプログラミングしているのであれば、標準のCコードです。
MFCと呼ばれるC++ベースのラッパーが利用できます。
このすべては、.NET frameworkのためにプッシュされています。
+1私は、Windows APIが.NET Frameworkのために段階的に廃止されていると主張するという皮肉なことを誇りに思う。多くの.NET Frameworkは、マネージコードで実装されている同じAPIの単なるラッパーです。それはまだかなり死んでいない! –
Windows APIはラングガイトニュートラルです。これはCでもC++でもありません。マイクロソフトでは、Windows自体は主にC++で書かれていますが、大部分のAPIはクラスを必要とせず、APIのクラス(たとえばDirect Xなど)もクラスなしで純粋なC言語で使用できます。
Cプログラマの中にはCライブラリだと思う人もいますが、プログラミング言語のコンパイラは独自のWindows呼び出しモデルをサポートする必要があります。これは古典的なC呼び出し規約ではありません。 (明らかに現実の世界のCコンパイラは、それをサポートしています。)
Windows APIが '__stdcall'を使用しても、それがCライブラリであることが失格になることはありません。 Cコンパイラの間でさえ、よく使われている呼び出し規約がいくつかあります(少なくとも、*は 20年後に多くの変更方法がありました)。どんな言語からでも*消費されるという意味で言語中立であることは間違いありませんが、純粋なベアメタルのWindows APIプログラミングはMicrosoft特有の拡張機能をいくつか備えていますが、ストレートCです。 –
"マイクロソフトは、Windows自体は主にC++で書かれていると言っています。私は文章が偽であり、MSがそう言っていないと確信しています。 –
@David:いくつかのWebサイトでは、Windowsは主にC++で書かれたビルゲートを引用しています。しかし、私はソースを見たことはありませんでしたので、それは何らかの欺瞞かもしれません。 –
- 1. Windows API ANSI関数とUTF-8
- 2. ウィンドウAPI関数
- 3. Windows関数マップ?
- 4. CreateEnclave()関数Windows
- 5. SetSystemTimeAdjustment関数 - Windows
- 6. Windows API EnumWindows関数とEnumChildWindows関数は、Windows XPと7では異なる動作をしますか
- 7. PowerShellでWindows API AuditEnumerateCategories関数を使用するには?
- 8. WindowsアプリケーションからAJAX API関数を呼び出す方法は?
- 9. Windows KMDからユーザースペースAPI関数を呼び出しますか?
- 10. ベイグラントフォーク()関数は、Windows
- 11. "ネイティブ無線LAN API" DelphiでWindows API関数を使用する方法
- 12. カスタムAPI関数
- 13. YouTube API関数
- 14. Processwire/APIフック(関数内のPHP関数)
- 15. Windows(Python)の関数のタイムアウト
- 16. ゴランのWindowsコールバック関数
- 17. 取得OpenGLのAPI関数
- 18. WindowsサービスヒットAPI複数回時々
- 19. Windows API関数宣言の "CALLBACK"は何を意味しますか?
- 20. WATCOM FORTRANで参照されるWindows API関数がありません
- 21. MinGWライブラリのWindows API関数InitCommonControlsEx()はどこにありますか
- 22. API関数CopyFile2を認識しているWindowsのバージョンは何ですか?
- 23. librdkafka C++ APIカスタムロガー関数
- 24. waveOutOpen()APIのコールバック関数
- 25. 関数fetch_images()from not api
- 26. $ facebook-> apiコールバック関数?
- 27. Node.js - MySQL API、マルチGET関数
- 28. Java(OpenCV API)のgradient()関数
- 29. Typescript関数内の `Fetch` API
- 30. Node.jsと同期API関数
純粋に知的好奇心のためのものなのか、より具体的な質問がありますか?もしそうなら、私たちはあなたの質問にいくつかの文脈を提供すれば、より良い答えを出すことができるかもしれません。 –
これは奇妙な質問です。あなたが質問の背後にある動機づけを説明するなら、あなたはより良い答えを得るかもしれないとCodyが言うように。本質的にあなたは知る必要はありませんが。 Windows APIは、不透明なインターフェイスです。あなたはそれを呼び出すだけで、インターフェイスの反対側にあるものは心配しないでください。あなたはそれが何をしているのかを知る必要があります。 –
こんにちは、「スリープ」という言葉が標準的な機能ではないと聞いたとき、私はキャプティアムの「スリープ」と混同してしまいました。私のコンパイラでは、「スリープ」は未知の関数です。 – user32233