トップページ > 記事閲覧
dxライブラリでソフトを作りたい
名前:RomanGames 日時: 2019/06/30 14:21

DXライブラリでcsvエディタを作りたいのですが、 その時ファイルの読み取りをする必要があり ソフト内でファイルを読み取る方法は ・ファイルから開く ・ドラッグ&ドロップ にしていて、それぞれ h ttps://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=4550 h ttps://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=3698 で解決したのですが エクスプローラー側からcsvファイルを右クリックして 「プログラムから開く」からcsvエディタを選んで ファイルを読み取るにはどの様にすれば良いですか? リンクをそのまま貼れないのでhとttpsの間にスペースを入れています。
メンテ

Page: 1 |

Re: dxライブラリでソフトを作りたい ( No.1 )
名前:管理人 日時:2019/07/01 02:57

「プログラムから開く」をした場合、ファイルのパスは WinMain 関数の第三引数 lpCmdLine に渡されます そのパスは先頭と末端にダブルコーテーション( " )があるので、fopen などでファイルを開く場合は 以下のように前後のダブルコーテーションを外した文字列を作成する処理が必要になります <lpCmdLine に渡されたファイルパスを画面に表示するプログラム> #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { char FilePath[ 1024 ] ; int StringLength ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // パスが無かったり2文字未満だったり長すぎたらエラー if( lpCmdLine == NULL ) { return -1 ; } StringLength = strlenDx( lpCmdLine ) ; if( StringLength < 2 || StringLength >= sizeof( FilePath ) ) { return -1 ; } // 先頭と末端の " を削除して文字列をコピー strncpyDx( FilePath, &lpCmdLine[ 1 ], StringLength - 2 ) ; // 末端文字を代入 FilePath[ StringLength - 2 ] = '\0' ; // 画面に表示 DrawString( 0, 0, FilePath, GetColor( 255,255,255 ) ) ; // キー入力待ち WaitKey() ; // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } よろしければお試しください m(_ _)m
メンテ
Re: dxライブラリでソフトを作りたい ( No.2 )
名前:RomanGames 日時:2019/07/01 15:58

ありがとうございます! これできっとcsvエディタをつくれます! (なんか分からない&調べても出てこない関数があるけど)
メンテ

Page: 1 |

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

   クッキー保存