自分のお店を開く時の心構えとは? >>

コンパイル環境と成果物は
Windows10ノートパソコン 64bit x64ベース Atom
VisualStudio2017
C++を使ったコンソールプログラム

作ったEXEをWindowsXP(Atom 恐らく32bit)で動かそうとすると、
「有効な32ビットアプリケーションではない」
と表示されて動作しません。

構成マネージャーを開くと
Win32 X86
になっています。だからXPでも動作すると考えていたのですが、違うのでしょうか。
また、XPでも動作するEXEファイルはどうやって作るのでしょうか。

A 回答 (4件)

環境的に実験はできませんけども…。



http://sumikko8note.blog.fc2.com/blog-entry-79.h …
まあ、こちらの方でも
>WinXPで起動してみると「アプリケーションを正しく初期化できませんでした」
だそうですが。

んで……ランタイムはインストールしてますかね?
https://forest.watch.impress.co.jp/library/softw …
とかから、32Bit用のランタイムをDLしてXP側にインストールする必要があると思われますが。
「Windows10,VisualStud」の回答画像4
    • good
    • 0
この回答へのお礼

回答ありがとうございます

ランタイムをインストールしましたが、解決しませんでした。

お礼日時:2017/11/28 17:54

追加


>.NETは使っていません

.NETは意識して使うのではなくても適当なVerがないとVisualStudioが動作しないのでは?(VisualStudioを使ったことがないので)

>「互換性」の箇所まで行く方法

Microsoftアカウントでサインインし、アプリをインストールするときに、プログラムファイル(setup.exeかInstall.exe)を右クリック「管理者として実行」(Administrator管理者権限とUACアクセス権)
    • good
    • 0

追加


.NET フレームワークのverは?
>VisualStudio2017

XP:マネージ開発では、Visual Studio .NET マルチターゲットを使用する必要があります。
https://www.visualstudio.com/ja-jp/productinfo/v …

>32bit

インストール時プログラムの格納先にProgram Files(x86)を選択しましたか?
    • good
    • 0
この回答へのお礼

.NETは使っていません。
インストール時のことは忘れましたが、Program Files(x86)にVisualStudioがインストールされています。

VS 2017 用 x86 Native Tools コマンド プロンプトで作ったhello worldでも、XPパソコンでは"Win32"でないと表示されてしまいます。

お礼日時:2017/11/27 08:03

>有効な32ビットアプリケーションではない



64bitとの違い(bit対応のアプリ)か、XPとWindows 10との違い(OS対応のアプリ)
か。
アプリのインストールは互換性でしましたか?
右クリック「プロパティ」「互換性」「互換モードでこのプログラムを実行する」チェックをいれOS選択(例:Windows 7SP1)「適用」「OK」→XPSP3はもう無理かも(サポート終了のOSでWin10とは違い過ぎる)
    • good
    • 0
この回答へのお礼

回答ありがとうございます

「互換性」の箇所まで行く方法の詳細を教えてください

お礼日時:2017/11/27 08:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QGetPrivateProfileStringでiniファイル読込む処理を詳しく知りたいのですが・・・

お世話になっています。

iniファイルを読込み、各変数に代入するC言語のDLLを作成したいのです。
このサイトの投稿や、MSDNなどにも載っていたのですが、
少し理解に苦しみます。

現在まで、理解した点がwindows.hのインクルードを
記述するところ辺りです。
iniファイルは下記のようなレイアウトです。

---<mst.ini>----------------------------
[user]
name=username
ID=userid
[pc]
pcname=FMV
----------------------------------------

#include<windows.h>は記述することまでは
分かりましたが、以下から進みません。。。

GetPrivateProfileString("")

初心者で申し訳ありませんが、お助け願います。

Aベストアンサー

こんにちは。itohhといいます。

サンプルを載せておきます。

mst.iniファイル内の[user]セクションのnameキーの値を取得する。
DWORD dwLen=0;
char strBuf[100];
dwLen = GetPrivateProfileString("user",       // セクション名
                "name",       // キー名
                "soushi_ni",     // デフォルト値
                strBuf,       // 読み込んだ値を格納するエリア
                sizeof(strBuf),   // 上記のエリアのサイズ
                "mst.ini" );     // iniファイル名

解説:
iniファイル名をフルパスで指定しないとWindowsのディレクトリにあるものと判断されます。
Win9xなら「c:\windows」、WinNT系なら「c:\WinNT」。

[user]セクションのnameキーがないときは、デフォルト値で指定した値が設定させます。

復帰値「dwLen」は実際に設定した値(文字列)の長さが返されます。

こんにちは。itohhといいます。

サンプルを載せておきます。

mst.iniファイル内の[user]セクションのnameキーの値を取得する。
DWORD dwLen=0;
char strBuf[100];
dwLen = GetPrivateProfileString("user",       // セクション名
                "name",       // キー名
                "soushi_ni",     // デフォルト値
                strBuf,       // 読み込んだ値を格納するエリア
             ...続きを読む

Q64ビット環境で作成したアプリは32ビットで動くか

Windows7 64bitを使用しています。
これにVS2008をインストールし、VB、C#でアプリを作成しました。
このアプリは32ビットOSで動作するでしょうか?

動作しないとしたら、32ビットOSでも動作できるアプリを吐き出す設定はどうすればいいでしょうか?

Aベストアンサー

http://www.gan.st/gan/blog/index.php?itemid=3860


人気Q&Aランキング

おすすめ情報