Variablen anderer Klassen werte zuweisen
-
Klasse1:
void CClientDlg::OnOK() { Chat chat; UpdateData(TRUE); //WSA initialisieren WSADATA wsa; if(WSAStartup(MAKEWORD(1,1),&wsa)) { MessageBox("WSAStartup() fehlerhaft","ERROR"); } //Strucktur für adressinformationen conserv.sin_addr.s_addr=inet_addr(m_strIp); conserv.sin_port=htons(m_iPort); conserv.sin_family=AF_INET; //Socket initialisieren if((sock=socket(AF_INET,SOCK_STREAM,0))==-1) { MessageBox("Couldn't create socket","ERROR"); return ; } //verbindung herstellen if((c=connect(sock,(sockaddr*)&conserv,sizeof(conserv)))==-1) { MessageBox("Couldn't connect to server","ERROR"); } send(sock,m_strName,strlen(m_strName),0); chat.sock=sock; //Wert an andere Klasse übergeben //Chatfenster aufrufen chat.DoModal(); EndDialog(0); //CDialog::OnOK(); }
Klasse2:
BOOL Chat::OnInitDialog() { CDialog::OnInitDialog(); CString buffer; CClientDlg clientdlg; if((bytes=recv(sock,usernr,sizeof(usernr)-1,0))==-1) { MessageBox("Error, konnte nicht empfangen","ERROR"); buffer.Format("0"); }else buffer.Format("%i",usernr); m_strUser=buffer; UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben }
Ich kann der Klasse2: keinen wert übergeben, wenn ich den recv() befehl mit in die erste klasse schreibe, klappt alles.
-
Du müsstest auf das Socket eine Referenz anlegen, sonst kennt er die Verbindung
in der 2. Klasse nicht...Devil
-
Äh..ja... und das heißt?