「プログラムから開く」をした場合、ファイルのパスは 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