[pochy-user] 初めまして&疑問

Back to archive index

hiro-****@hiro-***** hiro-****@hiro-*****
2003年 12月 9日 (火) 10:28:20 JST


初めまして、hiro と申します。

最近、Windowsのレジストリを一切さわらず、フォルダをコピーすればどこにでも
持ち運びできる、メーラーが欲しいなぁ・・・と思っていたところにPochyに行き当たり、
少し使ってみて、「まさに求めていた物だけ」ということで、使わせて頂いております。
以後よろしくお願いします。

実際にPochyを使っていると「まさに求めていた物だけど、少し物足りない。」
「なら、自分で変更してみよう」と思い立ってしまい、Visual C++ を買ってしまいました。
深く考えなかったので、手にしたのは「Visual C++ .net version2003」
そこで、「Visual C++ .net version2003」でコンパイルする際に出たエラーを報告します。
多くはVC++6とVC++.netの非互換性によるものと思われますが、一部は「バグでは?」と
思われるものもありました。

SummaryView.cpp 692行目
data.m_encoding_type = md.GetEncodingType(i);
左辺は"base64"などを格納するCStringなのに対して右辺はBASE64(#define BASE64 (4)で
定義される)などを結果として出力するint型です。バグではないかと考えます。
switch文でintからCStringを作り出すようにしました。

DraftFrame.cpp 89行目 ON_NOTIFY
HeaderView.cpp 37行目 ON_NOTIFY_REFLECT_EX
MailEditView.cpp 49行目 ON_NOTIFY_REFLECT_EX
MainFrm.cpp 71行目 ON_NOTIFY
TextView.cpp 60行目 ON_NOTIFY_REFLECT_EX
これらのマクロの最後の引数には BOOLを返り値とする関数を期待されているようですが、
Pochyでは 返り値無しの関数を指定しているようです。VC++の仕様の違いでしょうか。
試しに、それぞれの関数をBOOLを返り値にするようにし、関数の最後に
return(false);を入れたところ、コンパイルできるようになりました。

DraftFrame.cpp 89行目 ON_NOTIFY
MainFrm.cpp 71行目 ON_NOTIFY
上記BOOLを返り値とする関数の第一引数はNMTOOLBARA* ではなく、NMHDR*であることが
期待されているようです。NMTOOLBARA* がNMHDR*のスーパーセットのようですので、
関数の定義としてはNMHDR*を引数にして、関数内部でキャストしたところ、
コンパイルでいきるようになりました。VC++の仕様の違いでしょうか。

GpgDlg.cpp 129行目
GpgKeyListDlg.cpp 269行目
Str2Sliststack 関数の第一引数は CString & であるべきなのに対して、
bodya.GetAt(i)が const CString で変換できない・・・と怒られます。
どちらも直前で、tmps=bodya.GetAt(i);があったので、試しに
Str2Sliststack(tmps,list);に変更したところ、無事コンパイルできてしまいました。

lib.cpp 296行目
cstra.GetAt(i).GetLBuffer(0) が 2overloads have no legal conversion for 'this' pointer
と怒られました。そこで、
CString tmpc=cstra.GetAt(i);とし、cstra.GetAt(i).GetBuffer(0)をtmpc.GetBuffer(0)に
変えたところ、怒られなくなりました。

FolderView.cpp 470行目
DirArray.GetAt(i).GetBuffer(0) について、上記と同じ問題が発生しました。

以上の点を変更したところ、コンパイルでき、動作する実行ファイルができあがりました。
とりあえず、正しく動作しているように見えますが、上記変更が悪影響を与えていないことを
確認するまでには至っておりません。

ではでは。



pochy-user メーリングリストの案内
Back to archive index