Re: DXライブラリのバージョンを上げるとプログラムが動かなくなっ ( No.1 ) |
- 名前:管理人 日時:2015/07/23 23:11
手元の環境で載せていただいたプログラムを実行してみましたが、特に問題なく動作しました
こちらのプログラムは指定したフォルダの構造次第で処理内容が変化すると思うのですが、
たまさんの環境ではどんなフォルダに対して GetPathList を呼んでも必ず Run-Time Check Failure #2 が
発生してしまうのでしょうか?
|
Re: DXライブラリのバージョンを上げるとプログラムが動かなくなっ ( No.2 ) |
- 名前:たま 日時:2015/07/25 23:05
遅くなりました。
載せてあるコードの"test"フォルダはVisualStudioのプロジェクトと同じ階層においています。
中身は"a.txt" , "b.txt" , "c.txt" , "d.txt"の4つです。
Run-Time Check Failure #2 - Stack around the variable 'fd' was corrupted.
が出た後に「継続」ボタンを押すと、一応メイン関数に帰ってきて正常にパス一覧が表示されます。
絶対パスでいろんなフォルダ名を与えても同じでした。
|
Re: DXライブラリのバージョンを上げるとプログラムが動かなくなっ ( No.3 ) |
- 名前:管理人 日時:2015/07/26 02:41
|
Re: DXライブラリのバージョンを上げるとプログラムが動かなくなっ ( No.4 ) |
- 名前:たま 日時:2015/07/26 15:52
3.14dでも同じでした。
(全部3.10c、3.13dはOK、3.13f,3.14a,3.14dは動きません)
頂いた暫定最新版でも相変わらずです・・・。
Visual StudioはExpress 2013 for Windows DesktopのUpdate4です。
OSはWindows8.1の64bit版です。
if(fd.DirFlag)内のスコープを全部コメントアウトすると、正常に動作する場合とエラーになる場合があり、ますますわからない状態です。
|
Re: DXライブラリのバージョンを上げるとプログラムが動かなくなっ ( No.5 ) |
- 名前:たま 日時:2015/07/26 15:57
補足です。
いろいろ削ったこのコードでもダメみたいです。
#include <DxLib.h>
#include <vector>
#include <string>
std::vector<std::string> GetPathList(std::string folder){
std::vector<std::string> fileList;
int hFind;
FILEINFO fd;
std::string s;
s = folder;
std::string::iterator itr = folder.end();
//フォルダ名が空
if(itr == folder.begin()){
s = "";
} else{
itr--;
//フォルダ名の終わりに/が無ければ/(¥¥)追加
if(*itr != '/')
s += '/';
}
std::string _folder = s;
s += "*";
// ファイル探索
hFind = FileRead_findFirst(s.c_str() , &fd);
// 検索失敗
if(hFind == -1){
exit(1);
} else{
do{
std::string a = "a";
} while(FileRead_findNext(hFind , &fd) == 0); //次のファイルを探索
// hFindのクローズ
FileRead_findClose(hFind);
}
return fileList;
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,LPSTR lpCmdLine , int nCmdShow){
ChangeWindowMode(1);
if(DxLib_Init() == -1)
return 0;
std::vector<std::string> test = GetPathList("test/");//指定フォルダ内のファイル一覧を作成
WaitKey();
return 1;
}
std::string a = "a";
の代わりに
int a = 1;
とするとエラーはなぜか出ないです。
|
Re: DXライブラリのバージョンを上げるとプログラムが動かなくなっ ( No.6 ) |
- 名前:管理人 日時:2015/07/26 19:45
|
Re: DXライブラリのバージョンを上げるとプログラムが動かなくなっ ( No.7 ) |
- 名前:たま 日時:2015/07/26 21:36
管理人さま、迅速な対応をありがとうございます!
無事に動作するようになりました。
|