CrystalDiskInfoやCrystalDiskMarkなどCrystal Dew World製品に関する総合掲示板です。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
108 / 986     ←次へ | 前へ→

今回の指摘内容は、バグではないです。(w
 G神  - 20/9/22(火) 20:56 -
現在公開されている最新の「8.8.7」で確認して、幾つか気がついた点があったのでまとめてご報告します。

まず、メインダイアログ(CDiskInfoDlg クラス)の以下の関数は、ボタン押下(BN_CLICKED)メッセージハンドラと思われますが、現在はコメントで書いた関数へ変更されており、中身は同じ処理ですが、こちらは現在使われていません。

宣言: DiskInfoDlg.h ............. 346行〜 356行
実装: DiskInfoDlgUpdate.cpp ..... 2214行〜2225行

void OnDisk0(); // Replaced! → afx_msg void OnBnClickedButtonDisk0();
void OnDisk1(); // Replaced! → afx_msg void OnBnClickedButtonDisk1();
void OnDisk2(); // Replaced! → afx_msg void OnBnClickedButtonDisk2();
void OnDisk3(); // Replaced! → afx_msg void OnBnClickedButtonDisk3();
void OnDisk4(); // Replaced! → afx_msg void OnBnClickedButtonDisk4();
void OnDisk5(); // Replaced! → afx_msg void OnBnClickedButtonDisk5();
void OnDisk6(); // Replaced! → afx_msg void OnBnClickedButtonDisk6();
void OnDisk7(); // Replaced! → afx_msg void OnBnClickedButtonDisk7();

void OnPreDisk(); // Replaced! → afx_msg void OnBnClickedButtonPreDisk();
void OnNextDisk(); // Replaced! → afx_msg void OnBnClickedButtonNextDisk();
void OnDiskStatus(); // Replaced! → afx_msg void OnBnClickedButtonHealthStatus();

※ CDiskInfoDlg::OnDiskStatus()は、CDiskInfoDlg::OnHealthStatus()を呼んでいますが、メッセージマップには、OnDiskStatus()と関連付けるエントリーがありません。

また、呼び出されているCDiskInfoDlg::OnHealthStatus()ですが、この関数の中身は、CDiskInfoDlg::OnBnClickedButtonHealthStatus()とまったく同じです。

前者の OnHealthStatus() は メニュー用のID = ID_HEALTH_STATUS ........................... 値:32982
後者の OnBnClickedButtonHealthStatus() は PUSHボタンのID = IDC_BUTTON_HEALTH_STATUS .... 値:1047

のメッセージハンドラとして登録されています。

ON_COMMAND(ID_HEALTH_STATUS, &CDiskInfoDlg::OnHealthStatus)
ON_BN_CLICKED(IDC_BUTTON_HEALTH_STATUS, &CDiskInfoDlg::OnBnClickedButtonHealthStatus)

(1) afx_msg void CDiskInfoDlg::OnHealthStatus()

宣言: DiskInfoDlg.h ............. 539行
実装: DiskInfoDlgMenu.cpp ....... 76行〜 84行

(2) afx_msg void CDiskInfoDlg::OnBnClickedButtonHealthStatus();

宣言: DiskInfoDlg.h ............. 581行
実装: DiskInfoDlg.cpp ........... 2395行〜2403行

また、以下の2つの関数は、関数名と返す値の型(int/DWORD)こそ違いますが、どちらも中身はメンバ変数「m_SelectDisk」の値を返していて同じ処理です。
後者はプログラム中で一切使われていません。

(1) ....... CDiskInfoDlg::GetSelectedDrive();

宣言: DiskInfoDlg.h ............. 384行
実装: DiskInfoDlgUpdate.cpp ..... 2227行〜2230行

(2) ....... DWORD CDiskInfoDlg::GetSelectDisk(); ← 使われていない

宣言: DiskInfoDlg.h ............. 103行
実装: DiskInfoDlg.cpp ........... 2303行〜2306行

ちなみに、クラスオブジェクトの内容を変更しない関数は、constを付ける習慣を付けた方が良いと思います。 参照やポインタで渡す引数についても、関数内で対象の引数の中身(文字列やオブジェクト)を変更しない場合についても同様です。

int CDiskInfoDlg::GetSelectedDrive();
  ↓
int CDiskInfoDlg::GetSelectedDrive() const;

文字数制限の為、投稿を分けます。

引用なし

パスワード


・ツリー全体表示

今回の指摘内容は、バグではないです。(w G神 20/9/22(火) 20:56
Re:今回の指摘内容は、バグではないです。(w G神 20/9/22(火) 21:01
Re:今回の指摘内容は、バグではないです。(w ひよひよ 20/9/23(水) 0:50
凄い手間暇を掛けたアドバイス、ご苦労様です。 金華山の仙人 20/9/24(木) 11:25

108 / 986     ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
 79688
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b3