トップページ > プログラム > 2016年05月25日 > I3XxdNkJ

書き込み順位&時間帯一覧

8 位/196 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000023128



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
860 :デフォルトの名無しさん[]:2016/05/25(水) 20:35:35.50 ID:I3XxdNkJ
質問です。

WindowsXPの頃に作った簡単なプログラムがWindws7で動きません。
ソースを紛失していて、実行ファイルしかないのですが、
動作としては、文字列入力フィールドがあって、
そこにDOS上で動く別のプログラム名を入力すると、そのプログラムをDOS窓を呼び出して実行するという簡単なものです。
XPでは問題なく使えていたのですが、Windows7では、DOS窓が開いただけで別プログラムが実行されません。

文字列操作でstrcat()とか使ってるので、それ関係かな?とも思いますが、
Windows7を入れた2台のPCのうち、1台は動かないのですが、もう1台では動きます。

動かないPCは、クリーンインストゥールしたPCなので、他の要因で動かないということは無いと思います。
Windows7のOS上で動くPCと動かないPCがあるということです。
システム構成は3770Kと3770で、ほぼ同じと言えます。
これはやはりプログラムを書き直しする必要があるでしょうか?回避策はあるでしょうか?
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
862 :デフォルトの名無しさん[]:2016/05/25(水) 20:51:02.10 ID:I3XxdNkJ
>>861
Windows7は、どちらも64bitです。

DOS窓で動かすプログラムは、自分でDOS窓を呼び出してコマンド入力すると動きます。
自作プログラムでコマンドを送ると、動かないというわけです。
文字列操作関係の障害とは思うのですが。
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
867 :デフォルトの名無しさん[]:2016/05/25(水) 21:02:07.03 ID:I3XxdNkJ
>>863
同じパスで動かしていますのでOKです。
>>864
ユーザー権限かもしれませんね?
どこかに設定ありましたっけ?
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
868 :デフォルトの名無しさん[]:2016/05/25(水) 21:12:41.93 ID:I3XxdNkJ
あ、症状がすこしわかりました。

文字列入力フィールドに、外部プログラム名を入力するのですが、
自作プログラムでは、自動でスイッチを追加するようにしてます。

例:
[hogehoge]
と、入力すると、
[hogehoge -A -g]
と、スイッチ付きでコマンドが出力されてDOS窓で実行される。
hogehogeプログラムは、[hogehoge]だけだと実行されない仕様。

動かないPCのほうで、
[hogehoge -A -g]
と、スイッチまでまとめて入力すると動きました。

ということは、やはりstrcat()で、
[hogehoge][ ][-A][ ][-g]と連結するあたりで、不具合が生じていると思われます。

>>866
MFCなんですが、ライブラリが他のソフトによって更新されてるのかもしれませんね?
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
872 :デフォルトの名無しさん[]:2016/05/25(水) 21:27:10.10 ID:I3XxdNkJ
>>869-870
スペースは、半角スペースで問題ないと思います。

>ランタイムの違いで、単純な連結がおかしくなるなんて考えがたいな
そうですねえ。
不思議ですが。
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
875 :デフォルトの名無しさん[]:2016/05/25(水) 22:16:54.36 ID:I3XxdNkJ
>>874
そこでパスが見られるのは初めて知りました。
ありがとうございます。

さっそく見てみたところ、やはり文字列の連結部分に、変な文字バケが入っていました。
それでプログラムがスイッチを認識できなかったと思われます。
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
881 :デフォルトの名無しさん[]:2016/05/25(水) 23:14:51.24 ID:I3XxdNkJ
>>876

[hogehoge]Hlw[ ][-A][ ][-g]

こんな感じで、プログラム名の直後に3〜4文字程度文字化けが入ります。
strcat()で文字を連結してる部分です。
後ろの文字列もstrcat()で連結してますが、問題ないようです。
毎回違う文字になるようです。
何十回か試したところ、文字化けしないで実行されることもありました。

もしかしたら、文字列格納用の配列を初期化し忘れてるかも?
XPだと動いてたのですが。
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
885 :デフォルトの名無しさん[]:2016/05/25(水) 23:39:45.19 ID:I3XxdNkJ
>>882
ありがとうございます。

上手くいかないようなら、ソースから書き直すことにします。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。