Windows のアプリケーションを C で書くのはだいぶんしんどいと思う。 C++ なら楽というわけでもないけど各種フレームワークが C++ を前提にしていたりするので全体としては楽をしやすい可能性が高い。 ただ、言語仕様としては C++ のほうがだいぶん複雑ではあるので言語に対する習熟がどの程度かにもよる。 0692デフォルトの名無しさん2022/09/01(木) 10:58:27.89ID:0gPlf6MI GDI+ なんかはC++ベースだしな 0693デフォルトの名無しさん2022/09/01(木) 11:08:01.39ID:wgtUDrt5 Runtime と API って結局何が違うん? 0694デフォルトの名無しさん2022/09/01(木) 11:10:18.56ID:wgtUDrt5 GDI+はCからでも使えるよな 0695はちみつ餃子 ◆8X2XSCHEME 2022/09/01(木) 11:17:08.19ID:LhGLll4T ランタイムは実行時に使われるライブラリ (およびその他の実行時サポート) で、 API はそれらを呼出すインターフェイスのこと。
ただ、そんなにしっかりした定義があるわけではなくて スタティックリンクするライブラリのインターフェイスを API と呼ぶかどうかなどは人によるかも? API の P はプロトコルの P なので独立性の高いモジュールの外部仕様なら 形態にかかわらず API と呼んでいいんじゃないかと個人的には思っているが。 0696デフォルトの名無しさん2022/09/01(木) 11:27:49.27ID:wgtUDrt5 ntdll.dll とか kernel32.dll は API って感じするけど それ以外は全部 Runtime で良いんじゃないかとも思う msvcrt を API かって言われたら絶対違う気がする 0697デフォルトの名無しさん2022/09/01(木) 12:14:02.42ID:NUg6437m Application Programming Interface 0698デフォルトの名無しさん2022/09/01(木) 12:36:35.99ID:GpP6p1Yr APIは「境界面・接点」だから、インターフェイスの向こう側は対象外。 ライブラリは「書庫」なので、中身を含めてライブラリ。 0699デフォルトの名無しさん2022/09/01(木) 12:48:19.96ID:0gPlf6MI ランタイムは、特定の開発手段(GCC, VSなど)に関係する実行環境に持ち込むもの APIは、特定の操作対象(OS、アプリなど)に関係する関数など 0700デフォルトの名無しさん2022/09/01(木) 13:18:41.91ID:epb6+NRn 「ランタイム」って不思議な名前だね 何語かな? 0701デフォルトの名無しさん2022/09/01(木) 13:31:42.39ID:NUg6437m Runtime library https://en.wikipedia.org/wiki/Runtime_library0702デフォルトの名無しさん2022/09/01(木) 13:39:01.39ID:wgtUDrt5 携帯電話をケータイと略してしまって何のことか判らなくなるのが日本人の本質 0703デフォルトの名無しさん2022/09/01(木) 13:49:12.02ID:epb6+NRn>>701 単なるライブラリじゃん 0704デフォルトの名無しさん2022/09/01(木) 14:00:22.77ID:epb6+NRn>>702 英語だと「mobile」だしそこは日本人に限らない 0705デフォルトの名無しさん2022/09/01(木) 14:04:08.43ID:oIm36FRE 静的じゃなくて、かつ統合的な機能を提供しとるライブラリという感じ 0706デフォルトの名無しさん2022/09/01(木) 14:06:48.53ID:P/wcDX1Q いうて英語圏でも普通にRuntimeと表記されまくってるよ CRTLよりCRTのが一般的だし。RTよりはRTLかもしれんが
>>703 したらわざわざ区別するような名称が付いたりしません 0707はちみつ餃子 ◆8X2XSCHEME 2022/09/01(木) 14:15:18.72ID:LhGLll4T>>702 いや、プログラムから呼び出されるライブラリだけでなく実行時サポートのための機構全般を含めてランタイムという場合もある。 たとえば WebAssembly の仮想機械の実装である wasmtime も "A fast and secure runtime for WebAssembly" と説明されている。 https://wasmtime.dev/
明確な用例を見つけられないんだけど .NET とかでも同じようなニュアンスだったはず……。 0708デフォルトの名無しさん2022/09/01(木) 14:40:23.38ID:veDjuKDC おまえらは用語の定義とかの話になると生き生きしはじめるな 0709デフォルトの名無しさん2022/09/01(木) 14:46:45.68ID:PGNFrqcy それがプログラマに大事な資質の一つだからまあ 0710デフォルトの名無しさん2022/09/01(木) 15:06:04.82ID:X5eV6Z9e WebAPI はどうでもいいとして Win32API 以前は API ってあんまり聴かんかった気がする もし時代が時代なら C Runtime は Console API とか System Call API とか名付けられていたんじゃまいか 0711デフォルトの名無しさん2022/09/01(木) 15:13:38.12ID:epb6+NRn Linux界隈でもランタイムって用語は あんまり馴染みない気がする 0712はちみつ餃子 ◆8X2XSCHEME 2022/09/01(木) 15:45:49.43ID:LhGLll4T ランタイム (実行時) という語をあてはめる以上は静的ではないというニュアンスが感じられるし、 ダイナミックリンクされるもの全般をふんわりとそう呼び始めたとかではないかなぁ。 あくまでも想像の域を出ないけど。
当時の用語の混乱は置いといて、現代的にには 機械語レベルでの値の受け渡しやメモリの配置は ABI で決めるべきことで API はその上に構築される高レイヤな概念と解される場合が多いと思う。 ソフトウェア割込みを使うという規約は ABI に属して、 どのような値を渡してどんな効果があるかは API に属すと考えるべきじゃないかな。 0721デフォルトの名無しさん2022/09/02(金) 07:20:17.05ID:gHt2MaJh メインフレームではSVC DIAGNOSEを使う馬合もあるけど 0722デフォルトの名無しさん2022/09/02(金) 09:12:32.54ID:K5Jq4B80 こんなのがあったんだけど