トップページ > 記事閲覧
エクスプローラーにファイルを保存したいです
名前:糞プログラマ 日時: 2019/11/27 17:28

エクスプローラーにファイルを保存するには どのようなコードを書けば良いのでしょうか。
メンテ

Page: 1 |

Re: エクスプローラーにファイルを保存したいです ( No.1 )
名前:名無三 日時:2019/11/27 21:43

エクスプローラーがフォルダやディレクトリを指していると言う前提ですが、stdio.h使うなりして自前で用意するのが普通ですな… (アレ、でもDXLibにはreadはあるけどwriteが無いな…何故だろう)
メンテ
Re: エクスプローラーにファイルを保存したいです ( No.2 )
名前:糞プログラマ 日時:2019/11/27 22:01

エクスプローラの画面を開いてから保存したいです。 (名前を付けて保存的な)
メンテ
Re: エクスプローラーにファイルを保存したいです ( No.3 )
名前:B.E 日時:2019/11/28 00:31

>>エクスプローラの画面を開いてから保存したいです。 >>(名前を付けて保存的な) ファイル保存ダイアログの事ですかね? DXライブラリには、無い機能だと思います。 WindowsAPI使えばできますけど、ある程度知識が必要ですよ。 とりあえず、下記のコードは保存ダイアログをだして、ファイルパスを取得するサンプルです。 細かいエラー処理は省略してます。保存処理も自分で実装出来ると思いますので省略してあります。 (当たり前ですけどWindows環境だけで動きます。WindowsAPI使ってるので…。) #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); SetGraphMode(640, 480, 32); //画面サイズ指定 DxLib_Init(); //DxLib初期化 SetDrawScreen(DX_SCREEN_BACK); //描画先を裏画面に OPENFILENAME OpenFile = {0};//OPENFILENAME構造体を宣言 TCHAR szPath[MAX_PATH] = { 0 };//フォルダ位置文字列宣言 TCHAR szFile[MAX_PATH] = { 0 };//選択ファイル文字列宣言 GetCurrentDirectory(MAX_PATH, szPath);//パス文字列に現在のパスを入れる(ここで指定したパスでダイアログで開く) OpenFile.lStructSize = sizeof(OPENFILENAME);//構造体サイズ指定 OpenFile.hwndOwner = GetMainWindowHandle();//DXライブラリのウインドウハンドルを指定 OpenFile.lpstrInitialDir = szPath; // 初期フォルダ位置文字列ポインタ OpenFile.lpstrFile = szFile; // 選択ファイル文字列ポインタ OpenFile.nMaxFile = MAX_PATH;//パスの最大値 OpenFile.lpstrFilter = "ABCファイル(*.abc)\0*.abc\0" "DFGファイル(*.dfg)\0*.dfg\0";//保存ファイル種類を指定できる OpenFile.lpstrTitle = "ファイルの保存ダイアログ";//ここで指定した文字がダイアログのタイトルバーに表示されます。 OpenFile.nFilterIndex = 1;//デフォルトで指定されてる保存ファイル種類(1が一番目になる) OpenFile.Flags = OFN_FILEMUSTEXIST;//各種フラグとりあえずこれで動くので細かいことは自分で調べて下さい if (GetSaveFileName(&OpenFile)) {//GetSaveFileName()関数にOPENFILENAME構造体のポインタを渡すとダイアログが表示される printfDx("ファイルパス:%s\n", szFile);//ファイルパス表示 printfDx("ファイル種類は:%d\n", OpenFile.nFilterIndex);//ダイアログ下のファイルの種類の項目でえらんだ数値(1が一番上) } else { printfDx("キャンセルもしくは失敗しました。");//ユーザーがOKボタンを押す以外で終了すると「0」になるのでエラー } ScreenFlip();//画面更新 WaitKey();//キーを入力するまで待つ DxLib_End() ;// DXライブラリの後始末 return 0;// ソフトの終了 } PS.ちょっと気になった所があったので何度かコードを記事修正しました。すいません。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存