掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
添付ファイルをメールから取り外すには? (ID:56411)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 取り外す部分の作成に取り掛かったのですが、コンパイルとかは警告も出さずに > 成功するのにもかかわらず、実行してみると不正な処理で落ちてしまいます。 本当に警告出ません? mview004c_r1.lzhをDLしてコンパイルしたら、 「mailviewer.cpp(728) : warning C4700: 値が割り当てられていないローカルな変数 'f_id' に対して参照が行われました。」 という警告が。 さて、ツッコミどころがたくさんある気がしますが、DLしたソースを検証する前に、 まずはココに書かれている分だけで。 > char *f_id, *PertId; // 分割メールのID f_idはドコのメモリを指しているのでしょうか? NMailAttachmentFileStatus()のヘルプを読む限りでは、 そもそも使い方を間違えているとしか思えませんが。 予めバッファを用意し、その先頭アドレスを第2引数で、 確保したバッファのサイズを第3引数で渡す仕様のようですが。 (というコトでそのように変更してみたがナニも入ってこなかった) > ret = NMailAttachmentFileFirst(Temp, subject, date, from, header, body, szDir, FileName, szAtFileData, NULL); 操作手順によってはbodyの値が不定です。 (起動直後にやったらNULLになってて落ちました。) > case WM_INITDIALOG: > CenterWindow(hDlg, hParent); > hList = GetDlgItem(hDlg, IDC_LIST1); > hFDEdit = GetDlgItem(hDlg, IDC_EDIT1); > hFDBtn = GetDlgItem(hDlg, IDC_FILEBTN); > hFBtn = GetDlgItem(hDlg, IDC_BUTTON1); > return TRUE; 各ウィンドウハンドルを取得しているようですが、 次にAttachFileProc()が呼ばれた時(=次のメッセージを処理する時)には、 これらの値は無効(不定値)になっています。 故に、 > // うまくいかないのでエディットハンドル再取得 > hFDEdit = GetDlgItem(hDlg, IDC_EDIT1); となっているのだと思いますが。 ローカル変数の寿命について調べてみましょう。 ローカル変数の寿命について理解していないとすると、 関数全域について不安が……
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.