Ich habe einen helpAbout-Menüpunkt zu meiner mfc-Anwendung hinzugefügt. Ich habe beschlossen, die ddlg von CDHTMLDialog abzuleiten.
Ich überschreibe die Methode OnInitDialog() in meiner abgeleiteten Klasse und rufe als erstes die Methode OnInitDialog() der übergeordneten Klasse auf.
Dann füge ich einen Code ein, der den Titel festlegt.
Auf einigen Rechnern funktioniert das problemlos, auf anderen stürzt es beim Aufruf von
CDHtmlDialog::OnInitDialog() - Versucht, einen Null-Zeiger zu lesen.
der Aufrufstapel enthält nichts Nützliches - er befindet sich in mfc90.dll
Ist dies ein potenzielles Problem mit nicht übereinstimmenden mfc/win32-DLLs?
Es funktioniert auf meinen Vista-Rechnern, stürzt aber auf einem Win2003-Server ab.
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
}
Und hier ist die entsprechende Header-Datei:
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()
};
Ich kann nicht herausfinden, was los ist - insbesondere, warum es auf einigen Rechnern funktioniert und auf anderen abstürzt.
Beide haben VS2008 installiert
Visual Studio meldet für jeden Rechner Folgendes:
VISTA - keine Abstürze 9.0.30729.1 SP
2003 Server: (Abstürze) 9.0.21022.8 RTM
EDIT - html code
<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>