by konisi » 2007年6月08日(金) 13:15
今学校から適当に打ってるのですが、こんな感じでどうでしょう?
コード: 全て選択
Function OpenFileName() As *Byte
Dim ofn As OPENFILENAME
OpenFileName=calloc(MAX_PATH)
'OPENFILENAME構造体の初期化
FillMemory(VarPtr(ofn),Len(ofn),0)
ofn.lStructSize=Len(ofn)
ofn.lpstrFilter=Ex"(all file)\0*.*\0\0"
ofn.nFilterIndex=1
ofn.lpstrFile=OpenFileName
ofn.nMaxFile=MAX_PATH
ofn.lpstrTitle="ファイルを開く"
ofn.Flags=OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_EXPLORER
ofn.lpstrDefExt="*"
'「ファイルを開く」ダイアログボックスを表示
If GetOpenFileName(ofn)=0 Then
free(OpenFileName)
OpenFileName=0
Exit Sub
End If
End Function
Dim FileName As *Byte
FileName=OpenFileName()
If FileName=0 then ExitProcess(0)
Open MakeStr(FileName) As #1
' ...
Close #1
free(FileName)
今学校から適当に打ってるのですが、こんな感じでどうでしょう?
[code]Function OpenFileName() As *Byte
Dim ofn As OPENFILENAME
OpenFileName=calloc(MAX_PATH)
'OPENFILENAME構造体の初期化
FillMemory(VarPtr(ofn),Len(ofn),0)
ofn.lStructSize=Len(ofn)
ofn.lpstrFilter=Ex"(all file)\0*.*\0\0"
ofn.nFilterIndex=1
ofn.lpstrFile=OpenFileName
ofn.nMaxFile=MAX_PATH
ofn.lpstrTitle="ファイルを開く"
ofn.Flags=OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_EXPLORER
ofn.lpstrDefExt="*"
'「ファイルを開く」ダイアログボックスを表示
If GetOpenFileName(ofn)=0 Then
free(OpenFileName)
OpenFileName=0
Exit Sub
End If
End Function
Dim FileName As *Byte
FileName=OpenFileName()
If FileName=0 then ExitProcess(0)
Open MakeStr(FileName) As #1
' ...
Close #1
free(FileName)[/code]