DLL-Problem mit CSocket



  • Nachdem ich nun stundenlang gegoogled habe, denke ich mein Problem soweit erkannt zu haben...

    Ich habe ein Programm geschrieben, das Daten von einem Server über einen Socket erhält. Wir gehen eine Verbindung zum Server ein, loggen uns ein und erhalten Daten...
    Als .exe funktioniert es zumindest. Umgewandelt als dll scheitert es allerdings.

    Das empfangen der Daten soll in einem Thread passieren (was vermutlich das Problem ist!)

    UINT CRTclient::MyThreadProc(LPVOID pParam)
    {
        CSocket *refreshSocket = new CSocket();
        CAsyncSocket *acceptSocket;
        int reply;
        char *inByte = 0;
        char **lines;
        int *lineCount;
        int err = 0;	
    	CString sockAddress;
    	UINT portAddress;
    
    	lineCount = (int*)malloc(sizeof(int));
        acceptSocket = new(CAsyncSocket);
    
    	if (!AfxSocketInit())
    	{
    		AfxMessageBox("IDP_SOCKETS_INIT_FAILED");
    		return FALSE;
    	}
    
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //************************************************************************************************************//
    // Die scheiternde Zeile:
        if (!acceptSocket->Create(9058)) // we let windows find a good port 9058
        {
            err = acceptSocket->GetLastError(); //just for debugging
            return NET_CREATEERROR; 
        }
        // we get the assigned port address
        if (0 == acceptSocket->GetSockName(sockAddress, portAddress))
        {
            err = acceptSocket->GetLastError(); //just for debugging
            return NET_GETPORTERROR; 
        }
        refreshPort = (int)portAddress;  //we communicate the port address to the main thread ...
    	refreshPort = 25123;
    	err = acceptSocket->Listen(5);
        if (0 == err) // no waiting partner
    	{
    		err = acceptSocket->GetLastError();
            return NET_ACCEPTERROR; 
    	}
        if (!acceptSocket->Accept(*refreshSocket)) // no waiting partner
    	{
    		err = acceptSocket->GetLastError();
            return NET_ACCEPTERROR; 
    	}
        if (*refreshSocket == NULL) 
        {
            return NET_NOTCONNECTED;
        }
    ...
    

    Kennt jemand das Problem und kann mir helfen?

    Gruß,
    -r


Anmelden zum Antworten