ab.com コミュニティ https://www.activebasic.com/forum/ |
|
AB V05CP4以降のバージョンにてGetOpenFileNameの動作に問題あり https://www.activebasic.com/forum/viewtopic.php?t=2675 |
ページ 1 / 1 |
作成者: | たかせ [ 2011年5月26日(木) 13:07 ] |
記事の件名: | AB V05CP4以降のバージョンにてGetOpenFileNameの動作に問題あり |
GetOpenFileNameでファイル フィルター(lpstrFilter)にコンスタントで定義済のものを指定すると ①ダイアログボックスにファイルカレントディレクトリ配下にあるファイル名が取得設定されない。 ②ファイルの種類にゴミ(多分EXEの実行コードと思われる)が付加される。 対象バージョン AB V05CP4以降 確認環境 WINDOWS 7/HOME SP1 WINDOWS XP ソースコードを添付しますのでご確認よろしくお願いします。 [ここをクリックすると内容が表示されます]
コード: /**************************/ /* GetOpenFileName テスト */ /**************************/ CONST FILTER = Ex"テキスト ファイル(*.txt)\0*.txt\0すべてのファイル(*.*)\0*\0\0" DIM OFN AS OPENFILENAME DIM FILENAME[255] AS Char 'GetOpenFileName テストその1 'ファイル フィルター(lpstrFilter)リテラル指定 'ダイアログボックスにファイルカレントディレクトリ配下にある 'ファイル名が設定される。 FillMemory(VarPtr(OFN),Len(OFN),0) OFN.lStructSize = Len(OFN) OFN.hwndOwner = NULL OFN.lpstrFilter = Ex"テキスト ファイル(*.txt)\0*.txt\0すべてのファイル(*.*)\0*\0\0" OFN.nFilterIndex = 1 OFN.lpstrFile = FILENAME OFN.nMaxFile = MAX_PATH OFN.lpstrTitle = "ファイルを開く" OFN.Flags = OFN_FILEMUSTEXIST OR OFN_HIDEREADONLY OR OFN_PATHMUSTEXIST OFN.lpstrDefExt = "*" IF GetOpenFileName(OFN) <> 0 THEN MessageBox(NULL,FILENAME,"指定したファイル名",MB_OK) ELSE MessageBox(NULL,"ファイル名を指定願います。","GetOpen",MB_OK) END IF 'GetOpenFileName テストその2 'ファイル フィルター(lpstrFilter)コンスタント指定 'V05CP4/V05CP5でコンパイルすると 'ダイアログボックスにファイルカレントディレクトリ配下にある 'ファイル名が設定さない。 FillMemory(VarPtr(OFN),Len(OFN),0) OFN.lStructSize = Len(OFN) OFN.hwndOwner = NULL OFN.lpstrFilter = FILTER OFN.nFilterIndex = 1 OFN.lpstrFile = FILENAME OFN.nMaxFile = MAX_PATH OFN.lpstrTitle = "ファイルを開く" OFN.Flags = OFN_FILEMUSTEXIST OR OFN_HIDEREADONLY OR OFN_PATHMUSTEXIST OFN.lpstrDefExt = "*" IF GetOpenFileName(OFN) <> 0 THEN MessageBox(NULL,FILENAME,"指定したファイル名",MB_OK) ELSE MessageBox(NULL,"ファイル名を指定願います。","GetOpen",MB_OK) END IF END |
作成者: | イグトランス [ 2011年6月04日(土) 21:47 ] |
記事の件名: | |
報告ありがとうございます。提示してあるコードで同じ挙動を見られました。 きちんと調べていませんが、想像するにConstだと\0から後ろがないかのように扱われているように思えます。まず、そこのところから調べてみたいと思います。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |