ばかげた質問かもしれませんが、これをグーグルで検索する試みはすべて失敗しました。問題は、再配布可能なプレインストールを必要としない Windows アプリケーションをどのように開発できるかということです。.NET Framework などを含まない古いバージョンの Windows でも動作するアプリケーションを作成したいと考えています。
ありがとう、イーウルフ
ばかげた質問かもしれませんが、これをグーグルで検索する試みはすべて失敗しました。問題は、再配布可能なプレインストールを必要としない Windows アプリケーションをどのように開発できるかということです。.NET Framework などを含まない古いバージョンの Windows でも動作するアプリケーションを作成したいと考えています。
ありがとう、イーウルフ
まず、CLR を使用しない C++ などのネイティブ言語でプログラミングします。
次に、マニフェストを無効にし、外部 DLL (STDC や MFC など) をリンクしないようにします。
古いバージョンの Windows とはどういう意味ですか?
.net Framework は、Windows 2003 および .net 1.1 以降の Windows の一部です。
したがって、Windows 2003 よりも新しいバージョンの Windows を対象としている場合は、.net が利用可能であることを確認できます。
再配布可能ファイルなどを出荷する必要がないように、.net 製品のリンク/パッケージ化を自動化するソリューションもあります。
更新: Monoを使用すると、ランタイム全体を実行可能ファイルにリンクできることが
わかりました。
彼らはその機能をBundleと呼んでいます。
詳細については、こちらをご覧ください。
Delphi を使用する - 新しいバージョンの IDE には奇妙なバグがいくつかありますが、再配布可能ファイルを必要としないネイティブ Windows アプリケーションを簡単に作成できます。C++/win32 よりもはるかに使いやすい。
編集: eWolf が指摘したように、.NET とタグ付けされた元の質問にもかかわらず、.NET は必要ありませんでした。
つまり、Win95/98/2000 などの一部の古いマシンには、ランタイムがインストールされていない場合があります。.NET を指定したので、.NET を使用してアプリケーションを構築したいと考えています。大きな問題がありますが、.NET アプリケーションを実行する前に .NET ランタイムをインストールする必要があります。これは、次の 2 つの方法で簡単に回避できます。
C/C++ などのネイティブ アプリケーションについて話している場合、(依存を回避し、必要な DLL の数を最小限に抑えるため) とるべき最善の方法は、多くの Windows マシンで使用されている標準の DLL のみを使用して、未加工の WinAPI32 で開発することです。 COMMCTRL.DLL、USER32.DLL、ADVAPI.DLL などがあります。最終結果は、より小さな実行可能ファイルになります。もちろん、DLL を静的にリンクして 1 つの巨大な実行可能ファイルを形成することにより、他の DLL をバンドルすることもできます。