ファイル名を分割した後に落ちる

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: ファイル名を分割した後に落ちる

確認しました

by Cursol » 2005年6月12日(日) 14:52

詳しく教えて頂きありがとうございました、こちらでも動作を確認しました。
しかし、コードの上の方で似たようなことやってながら全く気が付かなかった。OTL

Re: ファイル名を分割した後に落ちる

by hira » 2005年6月12日(日) 12:09

コード: 全て選択

Dim Fname As String
Fname = ZeroString(MAX_PATH)
_splitpath(FileName, NULL, NULL, Fname, NULL)
のようにしなければなりません。
_splitpath関数(に限りませんが)で文字列を返してもらうときには、返してもらう変数に領域を確保しないとエラーか強制終了になります(これを行うのがZeroStringの行)。
また、取得しなくてもいい要素は、NULLを指定して受け取らないようにすることができます。私が書いた_splitpathの行でNULLが3つもあるのはそういうことです。
もし他の要素も欲しい場合、文字列変数にZeroString関数で適当な領域(サイズがわからなければMAX_PATHだけあれば確実)を確保し、それを引数に指定してください。

つまり、ABのバグではありません(^^;

ファイル名を分割した後に落ちる

by Cursol » 2005年6月12日(日) 03:25

ステップ11 「テキスト エディタを作る」の「開く」メニュー イベントの

'hEditにフォーカスをセット
SetFocus(hEdit)

のあとに以下のコードを追加しタイトルバーにファイル名を表示させようとしました

  'タイトルバーにファイル名を表示
    Dim DrivePath As String
    Dim DirPath As String
    Dim Fname As String
    Dim ExName As String

    _splitpath(FileName, DrivePath, DirPath, Fname, ExName)
    SetWindowText(hMainWnd, Fname)

デバックで動作を確認すると、メニューからファイルを開くを選らび目的のファイルを選択し開いた瞬間に落ちてしまいます。このときにエラーはでませんでした。

因みに
    SetWindwoText(hMainWnd, FileName)
だけならフルパスのファイル名がタイトルバーに設定されました

また、ファイル名を分割した後
    MessageBox(0,Fname,"",MB_OK)
で確認する事まではできました。しかしOKを押した後ですぐに落ちてしまいました。理由がわからずバグかと思われましたのでここに投稿させていただきます。

ページトップ