Я добавил пункт меню helpAbout в свое приложение MFC. Я решил сделать ddlg производным от CDHTMLDialog.
Я переопределяю метод OnInitDialog () в своем производном классе, и первым делом я вызываю родительский метод OnInitDialog ().
Затем я вставляю код, который устанавливает заголовок.
На некоторых машинах это работает нормально, но на других происходит сбой при вызове
CDHtmlDialog :: OnInitDialog () - Попытка прочитать нулевой указатель.
стек вызовов не имеет ничего полезного - он находится в mfc90.dll
Это потенциальная проблема с несовпадением dll mfc / win32?
Он работает на моих Vista-машинах, но падает на сервере win2003.
BOOL HTMLAboutDlg::OnInitDialog()
{
// CRASHES on the following line
CDHtmlDialog::OnInitDialog();
CString title = "my title"; // example of setting title
... other code
SetWindowText(title);
return TRUE; // return TRUE unless you set the focus to a control
}
А вот соответствующий заголовочный файл:
class HTMLAboutDlg : public CDHtmlDialog
{
DECLARE_DYNCREATE(HTMLAboutDlg)
public:
HTMLAboutDlg(CWnd* pParent = NULL); // standard constructor
virtual ~HTMLAboutDlg();
// Overrides
HRESULT OnButtonOK(IHTMLElement *pElement);
HRESULT OnButtonCancel(IHTMLElement *pElement);
// Dialog Data
enum { IDD = IDD_DIALOG_ABOUT, IDH = IDR_HTML_HTMLABOUTDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
DECLARE_DHTML_EVENT_MAP()
};
Я не могу понять, что происходит, в частности, почему это работает на некоторых машинах и дает сбой на других.
У обоих установлен VS2008
Visual Studio сообщает следующее для каждой машины:
VISTA - без сбоев
9.0.30729.1 SP
2003 сервер: (вылетает)
9.0.21022.8 RTM
РЕДАКТИРОВАТЬ - HTML код
<HTML>
<BODY ID=HTMLAboutDlg BGCOLOR=WHITE>
<TABLE WIDTH=100%>
<TR WIDTH=100% HEIGHT=75>
<TD ALIGN=CENTER VALIGN=TOP>
<font color="#707880">by </font><a ID=LinkCP target=_blank href='http://www.mywebsite.com'><font color="#000000">my</font><font color="#2554C7">web</font><font color="#7093DB">site</font></a>
</TD>
</TR>
<TR>
<TD ALIGN=RIGHT ALIGN=BOTTOM>
<BUTTON STYLE="WIDTH:80" ID="ButtonOK">OK</BUTTON><BR>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>