ab.com コミュニティ https://www.activebasic.com/forum/ |
|
複数ファイルを開く https://www.activebasic.com/forum/viewtopic.php?t=2474 |
ページ 1 / 1 |
作成者: | M.S. [ 2008年9月11日(木) 18:03 ] |
記事の件名: | 複数ファイルを開く |
お久しぶりです。 早速ですが質問させてください。 ファイルダイアログで指定された複数のファイルを開こうと、 このページのコードを書いたのですが、 複数のファイルを開くと、 リストボックスに文字化けした文字が入るときがります。 コードは AB3.x のものだそうなので、 違うのであれば AB5 CP3 のコードにしたいのですが、 どう直せばよいのでしょうか? [ここをクリックすると内容が表示されます]
お願いします。
コード: Dim ofn As OPENFILENAME Dim buf[MAX_PATH] As Byte Dim lpFileName As BytePtr Dim lpf As Long Dim lpd As Long FillMemory(VarPtr(ofn), Len(ofn), 0) ofn.lStructSize = Len(ofn) ofn.hwndOwner = hMainWnd ofn.lpstrFilter = Ex"Ogg Vorbis(*.ogg)\0*.ogg\0\0" ofn.nFilterIndex = 1 ofn.nMaxFile = MAX_PATH ofn.lpstrFile = buf ofn.Flags = OFN_FILEMUSTEXIST or OFN_ALLOWMULTISELECT or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST or OFN_EXPLORER ofn.lpstrDefExt = "*" Dim i As Long If GetOpenFileName(ofn) Then lpf=ofn.nFileOffset lpd=lpf buf[lpf-1]=&H5C While 1 lpFileName=VarPtr(buf[lpf]) If lstrlen(lpFileName)=0 Then Exit While memcpy(VarPtr(buf[lpd]),lpFileName, lstrlen(lpFileName)+1) SendMessage(hList, LB_INSERTSTRING, i, buf As Long) lpf=lpf+lstrlen(lpFileName)+1 i++ Wend End If |
作成者: | HSABP [ 2010年10月24日(日) 14:45 ] |
記事の件名: | |
バッファが小さいんじゃないの? MAX_PATHで複数開くのは自殺行為 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |