プログラムが動きません
こんにちは。お恥ずかしいんですがパソコンのことでとても困っているので質問させてください。
3月の申告に使っていたプログラムなんですが、昨日修正申告のために動かしたら、画像のエラーが出て動きません。
今まで何年も動いてきたのに、急にどうしたんでしょうか。
詳しい方がいらっしゃいましたらお願いします。
ちなみに、プログラムを作ってくれた会社は何年か前に解散(倒産?)してしまって頼めません。(;_;)
こんにちは。お恥ずかしいんですがパソコンのことでとても困っているので質問させてください。
3月の申告に使っていたプログラムなんですが、昨日修正申告のために動かしたら、画像のエラーが出て動きません。
今まで何年も動いてきたのに、急にどうしたんでしょうか。
詳しい方がいらっしゃいましたらお願いします。
ちなみに、プログラムを作ってくれた会社は何年か前に解散(倒産?)してしまって頼めません。(;_;)
ペンネーム:回答者 (匿名希望)さん
最初に同情半分説教半分の能書きですが、これ、業務アプリの不具合ですよね。
そのアプリの保守契約はどうなってます?
作成した会社が倒産しても、どこかが保守を引き継いでいないのですか?
保守契約を結んでいないとしたら、経営者やシステムの責任者は、
不具合が出た時にどうするつもりでいるのですか?
実際、この問題をボランティアのQ&Aで解決しようとしてますが、
それは経営判断なんですか?
答える人はあくまで善意でお気軽に答えるだけなんだから、
回答が出なかったり間違っていたりすることも当然ありますが、
それも会社として了承済みなのですか?
有料でも、問題を直すだけの責任を知識のあるベンダーと
契約を結んで解決しようとは考えていないのですか?
自分だけの判断でここで解決しようとしているのなら、
業務に支障が出た時に、あなたの責任になっちゃいますよ。
以上、説教、というか、懸念です。
次に、同情する部分です。
原因調査で質問しても、用語が通じないで終了のパターンが多いのですが、
用語もけっこう通じていて、きちんとレスしているのには好感が持てます。
同時に、問題が解決しそうにない点に同情します。
stackはメモリーです。stack overflow はメモリーの不足であって、
ディスクの不足ではありません。
もうこれ以上ディスクを変更してはいけません。
メモリーと言ってもプログラム内部の論理的なメモリーなので、
これが不足するのは、搭載しているメモリーが足りないのではなく、
プログラムの設計上の問題です。
まず、何が問題か探るために、以下を実行してください。
変更される箇所はないので、安心して実行してください。
1.
C:\>debug \dddd\kessan02.exe と入力
ddddはkessan02.exeが置いてあるフォルダ(ディレクトリーとも言う)です。
2.
ファイルが見つかりません、と言われずに、
- で入力待ちになったら、R と入力
3.
Q と入力して終了。
4.
表示の中に、SP=xxxx があるので、xxxx を教えてください。
この値が不足と言われているstackのサイズです。
ペンネーム:回答者 (匿名希望)さん
データが壊れているということはないでしょうか?
起動するといきなり、「スタックオーバーフロー」ですか?
だとすると、起動時に読み込むべきデータが壊れている可能性があります。
データの整合性をチェックすることは可能ですか?
動いていたときのデータの状態にすることは可能ですか?
つまり、3月の決算データを一旦USBなどにコピーして,
3月時点のデータをすべて削除する → 2月以前の状態にする。
この状態で決算プログラムを起動してみる。
要は、動いていた状態に戻してやってみる、ということです。
データを戻してもダメなら、プログラムが壊れている可能性大です。
※決算データだけでなく、プログラムがこっそり使用するデータが壊れている可能性もあるので、原因を突き止めるのは大変な作業になると思います。
ペンネーム:回答者 (匿名希望)さん
もう、すでに回答されていますように、エラーメーッセージデkessann2エクサイス(ソフト)自身が
タイプ的に古いハードデスク用に適応して領域が
狭く設定設計されているのだと思います^^
多分XPでは使えても、バージョンアップするか、
一旦オーバーフローした過去のデータをCDまたは
別の外部増設ハードデスクに移し変えて、一旦クリアー
してみたらいかかでしょう?
それでまだ、だめなら最後の手段は、ソフトのバックアップとっておいて、入れなおしです。
それでも、動かなければ、決算ソフト自体が時間自滅の
設計?(新ソフト買い替え促進目的)かも^^
今わ決算ソフトも軽くて安いものが沢山ありますので
なるべく安価で動きが軽くて慣れやすいものを、、^^
決算のような記録性の大切なソフトは、やはり時代に
あった新しいものにしたほうが、、^^
ペンネーム:回答者 (匿名希望)さん
動いてるパソコンてWindowsです・・・よね?
パソコンはWindowsなんだけど、ソフトはMs-Dos時代のときに作られたものと推測します。
Cドライブに Kessan02っていうソフトが入っているんですね。たぶん、Cドライブの直下をMs-Dosで見ると、Kessan02.exeっていうのがあるはずです。
Windowsで、ハードディスクの空きがどれくらいあるか?なんて見ることが出来ますでしょうか?空きが少なくなってるんだと思いますが。
今まで512gbで使っていたmicrOSDカードがある日突然32gbしか認識しなくなってしまいました どうしたら512gbで認識してくれるようになるのでしょう?? 因みに使っているOSはWindows10です SDカードの詐欺だったのでしょうか??
タスクトレーに表示されていたアイコン(IME、入力方法などなど)が、 突然表示されなくなってしまいました。 どの様にしたら表示できるのでしょうか?
google+ ってgoogleのFacebook版、、、、 って解釈でよろしいでしょうか?
2チャンネルって ずっと以前から、気にはなっていたのですが、 未だに、私(女、50代)には未知の世界です。 でも、野次馬根性というか、なんでも知りたがりな私は 怖さが先に立っているものの、知ってみたい気もします。 怖いところ?学べるところ?面白いところ? ...
現在、富士通のレグザホンのどこものスマホを使用していますが、毎日のようにバージョンアップのアプリ通知がきてその後フリーズとエラーメッセージになり毎回、電池を抜いて再起動しなければ使えません 皆さんのスマホも同じなんですか?故障でしょうか?
フロッピーディスクの製造が中止になったようです。(ドライブ も含めて)ちょっとした保存が出来なく成りました。 CDディスクも当てに成りませんし・・皆さんは大切なデータは何処に保存されてますか?外付のハードディスクは絶対安全なんでしょうか? (6月14日 14:...
ペンネーム:質問者 (匿名希望)さん
今日怖くなって課長に話したら、支店で修正申告をしてみるように言われました。それから修理の業者探しも。思い切って話してよかったです。
それから1から4までやったら、SP=0800が出ました。最初、/の逆向きが探せなかったんですが、\でいいんですよね。
ペンネーム:回答者 (匿名希望)さん
業務上の問題は会社全体で解決するものなんだから、
自分一人で抱え込まないことですよ。
手順は実行できたのですね。
"\" は"¥"で合ってます。この板は文字化けするんですよ。
SP=0800は少なすぎです。だからSTACK OVERFLOWになっています。
何故今まで動いてきたかのほうが謎ですが、
とりあえず増やして実行してみてください。
1.
C:\>debug \dddd\kessan02.exe と入力(6/8と同じ)
2.
- で入力待ちになったら、R SPと入力
3.
SP 0800
:
で入力待ちとなったら、2000と入力
4.
- で入力待ちになったら、Gと入力
5.
これでプログラムが起動するか教えてください。
ただし、起動しても処理は一切しないですぐ終了すること。
真の原因が不明だから。
6.
- で入力待ちになったら、Q と入力して終了
もし、5. で STACK OVERFLOW だったら、3. の2000を、
3000、4000、と 1000ずつ増やしながら、8000まで、
1.から6.を繰り返してください。
もし起動していたら、真の原因を探るために、以下を実行してください。
C:\>set >set.txt
これでC:\にset.txtというファイルが作成されるので、
そのサイズを書いてください。
ペンネーム:質問者 (匿名希望)さん
何がどうなってるのかサッパリワカリマセンが、まるで魔法みたいです!!
まだ修正申告の処理はしてません。
set.txtは1852バイトでした。引き続きオネガイシマスッ(-人-;)
ペンネーム:回答者 (匿名希望)さん
だとしたら、単にデータ量が多いだけだったんでしょうか?
でも、動いてよかったですね。
ホセ・ヤコビさん、適切なアドバイスを有り難うございます。
生半可な知識で回答してすいませんでした。
ペンネーム:回答者 (匿名希望)さん
1852バイトだったら説明がつきます。
SP=0800は、10進数で2048バイトです。
スタック領域が起動時にこれだけしかないのに、
環境変数に1852バイトも使われてしまったので、
スタックが不足したということです。
対処法は2つあって、1つは、kessan02.exe の初期スタックを増やすこと。
MS製ではexehdr/editbinなどのツールがあり、
類似のフリーウエアもあります。
2つ目は、この環境変数の中で、不要なものを削除することです。
どちらでもいいと思いますが、理由は割愛しますが、
私は2つ目を推奨します。以下、方法です。
1. そのset.txtをメモ帳で開く。中身は xxxx=yyyy の形式の行が並んでいるはずです。
2. 全ての行の yyyy を消してください。yyyy は固有情報なので。
3. 保存したら、ここに貼ってください。
nobさん、私のほうこそ、途中で横からすみませんでした。
私も原因がわかったのはたまたまです。
エラーメッセージの出力元を探すために、
c:\windows\system32 以下のファイルから
"STACK OVERFLOW"の文字列を探したら、
多数の .exe や .dll が該当したので、これは、OSやアプリではなく、
c/c++のライブラリが出していると推測して調査したところ、
MS-Cは各関数呼び出しの都度、スタック残量をチェックし、
残りが少ないと、このメッセージを出力することがわかりました。
同時に、MS-Cのスタートアップは、
環境変数のアドレス**envpをmain()に渡す際、
ポインタを直接渡すのではなく、
全てをスタックにコピーすることもわかりました。
MS-DOSに比べて、Windows の DOS command prompt は、
環境変数が異様に多いため、これでスタックが食い潰されるのですが、
おそらく、3月時点ではギリギリで動作していた所に、
3月以降に環境変数を消費する何かがインストールされたために、
この現象となったんだろうと思います。
とはいえ、わかってみれば、
たまさんの、今までと違う操作を疑うとか、
nobさんの、別のPCで試してみるというアプローチは適切だし、
それで起動できて解決となるはずだったのに、
非常に申し訳なく思っています。
というわけで、今後ともよろしくお願いします。
ペンネーム:質問者 (匿名希望)さん
それと、原因も何度読んでもチンプンカンプンです。
でもすっごく難しいことだけはワカリマス。お手数かけてスミマセン
ALLUSERSPROFILE=
APPDATA=
asl.log=
CLASSPATH=
CLIENTNAME=
CommonProgramFiles=
COMPUTERNAME=
ComSpec=
FP_NO_HOST_CHECK=
HOMEDRIVE=
HOMEPATH=
LOGONSERVER=
NJAVA_HOME=
NUMBER_OF_PROCESSORS
OS=
Path=
PATHEXT=
PROCESSOR_ARCHITECTURE=
PROCESSOR_IDENTIFIER=
PROCESSOR_LEVEL=
PROCESSOR_REVISION=
ProgramFiles=
PROMPT=
QTJAVA=
SESSIONNAME=
SonicCentral=
SOUNDPATH=
SystemDrive=
SystemRoot=
TEMP=
TMP=
USERDOMAIN=
USERNAME=
USERPROFILE=
windir=
ペンネーム:回答者 (匿名希望)さん
動画、ゲーム、音楽とかを動かすためかな?
1. まず、PATH=, COMSPEC=, PROMPT= の行を削除
2. 残った行の最初に set の文字を挿入(下に貼ったように)
3. 保存して終了
4. set.txt を unsset.bat に名前を変更
5. C:\>unset を実行
6. C:\>kessan02 を実行
これで起動するはずです。修正申告処理に取りかかってください。
起動しなかったら、また調査します。
set ALLUSERSPROFILE=
set APPDATA=
set asl.log=
set CLASSPATH=
set CLIENTNAME=
set CommonProgramFiles=
set COMPUTERNAME=
set FP_NO_HOST_CHECK=
set HOMEDRIVE=
set HOMEPATH=
set LOGONSERVER=
set NJAVA_HOME=
set NUMBER_OF_PROCESSORS=
set OS=
set PATHEXT=
set PROCESSOR_ARCHITECTURE=
set PROCESSOR_IDENTIFIER=
set PROCESSOR_LEVEL=
set PROCESSOR_REVISION=
set ProgramFiles=
set QTJAVA=
set SESSIONNAME=
set SonicCentral=
set SOUNDPATH=
set SystemDrive=
set SystemRoot=
set TEMP=
set TMP=
set USERDOMAIN=
set USERNAME=
set USERPROFILE=
set windir=
最後に、もしSTACK OVERFLOWが再発したり
支店で発生したりした時は、
同じ手順でunset.batを作って流してください。
自力で。
ペンネーム:質問者 (匿名希望)さん
本当にここで相談してよかったです、感謝、感謝です。さっそく課長に報告しました。どうして動いたか説明できないアタシ、、、
でも何かインストールしませんでしたかって聞いたら、研修用に何かのソフトを入れていたので、それかもしれないなと
でも修理の業者探しはキャンセルで、軽くほめられました(●´ω`●)ゞ
いろいろとありがとうございました。やり方は忘れないようにこのページをしっかりキープしておきますねっ
ペンネーム:回答者 (匿名希望)さん