MFC-Projekt <-- vergessen "Winsock unterstützung" zu aktivieren



  • hallo,

    ich habe ein "Single document" - MFC Projekt erstellt... habe allerdings
    vergessen "Winsock unterstützung" anzuklicken.

    was muss ich wo im nachhinein einstellen um das nachzuhohlen?

    danke euch 🙂

    p.s: das projekt ist schon sehr groß und habe eig. keine lust alles nocheinmal
    in ein neues zu übertragen :-|



  • Naja normal werden doch nur die entsprechenden Klassen mit inkludiert (stdafx.h) ... also guck dir mal in der MSDN an, welche Header du für die Socket-Klassen der MFC brauchst ...



  • ...und in den linkereinstellungen die 'ws2_32.lib' mit reinnehmen...



  • 1. Füge in der stdafx.h noch folgendes hinzu:

    #include <afxsock.h>		// MFC socket extensions
    

    2. Füge in dem rc-File in der Stringtable noch folgendes hinzu:

    IDP_SOCKETS_INIT_FAILED	"Windows sockets initialization failed."
    

    3. Füge in dem h-File dre Resourcen noch folgendes hinzu (103 oder 104 für DlgApp 101 für kein Dialog; es darf halt keine Konflikte geben...):

    #define IDP_SOCKETS_INIT_FAILED			103
    

    4. Füge in "InitInstance" noch folgendes hinzu (nach dem aufruf der Basisklasse::InitInstance() bei DlgApp oder nach "CoInitialize(NULL);"):

    if (!AfxSocketInit())
    	{
    		AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
    		return FALSE;
    	}
    

    Siehe auch:

    C:\Programme\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\MFC\Application\templates\1033
    


  • hey danke perfekt 🙂

    ich poste mein 2tes problem einfach mal hier weil es so ca. hierhin passt 😉
    ich habe eine eigene Klasse von CAsyncSocket abgeleitet und möchte aus dieser
    Klasse nun Methoden meiner View-Klasse aufrufen!!

    wie machen ich das? der Klasse einen Pointer auf meine View-Klasse übergeben?!

    danke euch 🙂



  • babelduo schrieb:

    wie machen ich das? der Klasse einen Pointer auf meine View-Klasse übergeben?!

    besser umgekehrt, der view klasse einen pointer auf die socket klasse geben.
    oder noch besser: der document klasse den socket geben, ähnlich wie die doc-klasse auch den view hat (frei nach dem model-view-controller konzept). aber eigentlich egal. mach's so wie's für dich am besten passt 😉



  • aber wenn ich der View-Klasse einen Pointer auf die Socket klasse gebe,
    wie kann ich dann erreichen, das wenn OnReceive in der Socket-Klasse
    aufgerufen wird - auch eine Methode in meiner View aufgerufen wird?!

    deswegen wollte ich ja wenn ein EventHandler in der Socket-Klasse aufgerufen
    wird, das er dann (über einen pointer?!) eine Methode meiner View aufruft!

    dank schonmal 🙂



  • Aus diesem Grunde solltest Du es ja in Deiner Dokumenten-Klasse aufnehmen und *nicht* in der View-Klasse!
    Ein Dokument kann ja schliesslich mehrere Views haben...


Log in to reply