"Data.exe"というc実行ファイルで25 cd-romを焼きました。すべてのCDには同じCD名と同じ実行可能ファイル名がありましたが、実行可能ファイルのバージョンは異なりました。ここでは、コードです:異なるCDからの異なる実行ファイルは常に同じコードを実行します
CD0
system("C:\\_folder\\_folder.exe 0");
CD1
system("C:\\_folder\\_folder.exe 1");
.....というように.....
CD24
system("C:\\_folder\\_folder.exe 24");
"C:\ _ \フォルダ_folder.exe" のコードは、CDSが正しく燃やされた場合にだけチェックする
printf(argv[1]);
ました。 (本のすべての背後にあるコアアイデアは、CDSが自分自身を識別し、CDSは、私のニーズのために再利用可能にするために、ホスティングPCに本当のロジックを移動できるようにした。)
問題は、私はランダムに挿入することですCDを挿入すると、以前に挿入されたCDの実行可能ファイルが "スタック"し、新しいものの代わりに自身を表示します。
たとえば、CD16を挿入すると16が印刷され、次にCD20が挿入され、CD20実行可能ファイルから16が印刷されます.CD20実行可能ファイルの最終編集日もCD16のままです。再起動後、すべてが "リセット"され、挿入された最初のCDが新しい "スタック"になります。同じ問題は他のすべてのCDにも当てはまります。
これは簡単な作業のようで、私は確かに何かが欠けています。私の誤りはどこですか?
exeをCDから実行すると、ファイルは一時的にバッファに入れられ、同じファイルを再度呼び出すと、再バッファリングの代わりに一時ファイルが使用されます。次のCDを挿入する前に%temp%のすべてをクリアしてください –
CDを挿入し、exeを実行し、%temp%の内容を削除し、別のcdを挿入し、exeを実行して再度同じIDを取得しました。 –
@SurajS、いいえ、Windowsはそれをしません。実行可能ファイルが一時フォルダから実行したい場合は、それ自身で実行する必要があります。これはファイルシステムのキャッシュによく似ています。 CDのボリューム名が異なる可能性があります。 –