PPatrickFfm
Grünschnabel
Hallo zusammen!
Habe da ein kleines Problem, weiß aber nicht wie ich das Lösen kann.
Erstelle gerade eine dialogfeldbasierende Anwendung die über den Com-Port mit einem Interface kommunziert. So habe ich in das Projekt meine eigene, selbst erstellte Klasse, die die Schnittstelle bedient, hinzugefügt.
Das Problem liegt nun darin, dass das Objekt für den Port zur gesmten Laufzeit Gültigkeit haben soll, aber das kriege ich irgendwie nicht hin; denn immer (und ist ja auch logisch) wird das Objekt nach Verlassen der Funktion für den Button zerstört.
Wie kann ich denn das Objekt "global" erzeugen? Wenn ich es im Hauptfenster erzeuge so bekomme ich immer die Fehlermeldung:
"C4291" ... "Kein zugehoeriger delete-Operator gefunden; Speicher wird nicht freigegeben, wenn die Initialisierung eine Ausnahme ausloes"
*grübel*
Kann jemand helfen ... anbei ein Code-Snipsel, wenn's hilft.
Thanks in advance!
Pit
Habe da ein kleines Problem, weiß aber nicht wie ich das Lösen kann.
Erstelle gerade eine dialogfeldbasierende Anwendung die über den Com-Port mit einem Interface kommunziert. So habe ich in das Projekt meine eigene, selbst erstellte Klasse, die die Schnittstelle bedient, hinzugefügt.
Das Problem liegt nun darin, dass das Objekt für den Port zur gesmten Laufzeit Gültigkeit haben soll, aber das kriege ich irgendwie nicht hin; denn immer (und ist ja auch logisch) wird das Objekt nach Verlassen der Funktion für den Button zerstört.
Wie kann ich denn das Objekt "global" erzeugen? Wenn ich es im Hauptfenster erzeuge so bekomme ich immer die Fehlermeldung:
"C4291" ... "Kein zugehoeriger delete-Operator gefunden; Speicher wird nicht freigegeben, wenn die Initialisierung eine Ausnahme ausloes"
*grübel*
Kann jemand helfen ... anbei ein Code-Snipsel, wenn's hilft.
Code:
// CELMDlg Dialogfeld
class CELMDlg : public CDialog
{
// Konstruktion
public:
CELMDlg(CWnd* pParent = NULL); // Standard-Konstruktor
// Dialogfelddaten
//{{AFX_DATA(CELMDlg)
enum { IDD = IDD_ELM_DIALOG };
CButtonXP m_btnHelp;
CComboBoxXP m_cboName;
CButtonXP m_btnOk;
CButtonXP m_btnCancel;
CButtonXP m_Connect;
CImageList m_imgList;
DLC_Interface *Port;
//Port = new DLC_Interface; geht nicht! Wohin sonst?
//}}AFX_DATA
// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CELMDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
//}}AFX_VIRTUAL
// Implementierung
protected:
HICON m_hIcon;
CButtonXP m_btnOK;
...
void CELMDlg::OnConnect()
{
// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
char wert [20];
Port = new DLC_Interface;
do
{
itoa(Port->Port_No,wert,10);
MessageBox(wert, "Guarding ...", MB_SYSTEMMODAL);
Port->Port_No ++;
Port->ComHandle = Port->Open_Comport (Port->Port_No, 9600);
}
while(!Port->ComHandle && Port->Port_No <= 5);
if (!Port->ComHandle)
{
MessageBox("Unable to open port", "Guarding ...", MB_SYSTEMMODAL);
Port->Connected = FALSE;
}
else
{
MessageBox("Connected", "Guarding ...", MB_ICONINFORMATION);
Port->Connected = TRUE;
}
}
Thanks in advance!
Pit