あなたはネイティブコードを書いていると仮定します.Windows 98では、XPや現代のWindows版などのWin32-APIも使用します。いくつかのものは異なっています。 VirtualAllocEx()のようなAPIがありません。これらのAPI(https://msdn.microsoft.comに各APIの最小要件セクションがある)を避けてネイティブコードを書く場合、プログラムはWindows 98でも実行する必要があります。 Visual Studioに問題がある場合は、良い古いgccとEclipse、Code :: BlocksなどのIDEを使うことができます。これを64ビットのplattform用にコンパイルしないでください。コメントセクションいくつかの更新での議論によると
:32ビットのためのPEは、(現代でコンパイルがそうでない場合は、Windows 98上で
EDITを実行しませんPE +バイナリを取得しますWindowsボックス)はWindows 98と互換性があり、ランタイムライブラリのためにVisual Studioに問題がある可能性があります。別の方法として、あなたはそれが
MSVCRT.DLLを使用していますそれにもかかわらず、まだ、Windowsのバージョンが原因に一定のAPIをサポートしているチェックするのが難しいですランタイム
使用のMinGWせずにコンパイル
- に試みることができますMSDNの更新プログラム。この時点でMSDNの古いコピーが役立つ可能性があります。
本当にそれほど単純ではありません。 VS2015のデフォルト設定でビルドされた実行可能ファイルは、Windows XPでは動作しません.Windows 98は気にしません。(なぜ、PE形式などのバージョンが異なるのですか?) –
PEとPEの2つのメジャーバージョンがあります。 。後者は64ビットです。私はVisual Studioを使用しようとはしませんでしたが、MinGWでコンパイルされたPE実行可能ファイルは、サポートされているWin32 APIをWin98で実行する必要があります。自動生成されたスタブ(たとえば例外ハンドラ)についてはわかりませんが、古いバージョンのmingwがこの場合に役立つ可能性があります。私はポイントを見ない、なぜ私はここでdownvoteを取得します。 –
Hmmm。 [このブログの投稿](https://blogs.msdn.microsoft.com/vcblog/2012/06/15/targeting-windows-xp-with-c-in-visual-studio-2012/)によると、デフォルトのVS2012設定で構築された実行ファイルは、ランタイムが新しいAPIを使用するという点でXPでは機能しません。恐らく、私は、「有効なWin32アプリケーションではありませんか?」というエラーメッセージが表示されていました。 MinGWはおそらくそれ自身のランタイムを持つのではなくmsvcrt.dllを使用するため、この問題は発生しません。 –