konvertieren?



  • Hallo...

    Wenn man bei meinem prog auf "Senden" klickt, sollte es eine net send nachricht verschicken...

    kann mir jemand sagen wieso das net funzt ?

    unsigned short *servername = L"127.0.0.1";
    	unsigned short *title = L"Hiho";
    	unsigned short *from = L"Anonymous";
    	unsigned char *msg = "MeineNachricht";
    	unsigned long msgsize= sizeof(msg);
    
    	NetMessageBufferSend(servername, title, from, msg, msgsize);
    

    Fehlermeldung :
    char [15]' kann nicht in 'unsigned char *' konvertiert werden
    Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

    Muss ich msg irgendwie konvertieren? Ich werd aus der Fehlermeldung net schlau 😞

    in der definition von NetMessageBufferSend haben genau diese Datentypen gestanden die ich auch verwende ...

    _Rainer__



  • So hab ich es mal gelöst. Versuch einfach ob es funktioniert.

    void CNetMessageBufferSendDlg::OnSenden() 
    {
    	UpdateData();
        NET_API_STATUS     nasRc=0;
    
    	CString m_sTarget, m_sNick, m_sMsg;
    	m_sTarget="Hallo";
    	m_sNick = "Jens";
    	m_sMsg = "Hallo";
        const int MAXLEN = 256;
        wchar_t name[MAXLEN], from[MAXLEN], msg[MAXLEN];
    
        mbstowcs( name, m_sTarget.GetBuffer(0), MAXLEN );
        name[MAXLEN - 1] = L'\0';
        mbstowcs( from, m_sNick.GetBuffer(0), MAXLEN );
        from[MAXLEN - 1] = L'\0';
        mbstowcs( msg, m_sMsg.GetBuffer(0), MAXLEN );
        msg[MAXLEN - 1] = L'\0';
    
        nasRc = NetMessageBufferSend( NULL, name, from, (BYTE *) &msg[0], wcslen( msg ) * 2 );
    	switch(nasRc)
        {
            case ERROR_ACCESS_DENIED:
                AfxMessageBox("You do not have access to the requested function.",MB_OK | MB_ICONSTOP);
                break;
    
            case ERROR_INVALID_PARAMETER:
                AfxMessageBox("One of the passed parameters is invalid.",MB_OK | MB_ICONSTOP);
                break;
    
            case ERROR_NOT_SUPPORTED:
                AfxMessageBox("This network request is not supported.",MB_OK | MB_ICONSTOP);
                break;
    
            case NERR_NameNotFound:
                AfxMessageBox("The user name could not be found or is not logged in.",MB_OK | MB_ICONSTOP);
                break;
    
            case NERR_NetworkError:
                AfxMessageBox("A general failure occurred in the network hardware.",MB_OK | MB_ICONSTOP);
                break;
    
            case NERR_Success:
                AfxMessageBox("Message successfully sent!",MB_OK);
                break;
    
            default:
                AfxMessageBox("Unknown error",MB_OK);
        }
    }
    

    Devil



  • THX!!!

    Es funzt prima! 👍



  • Hi,

    Was muss ich denn noch includieren ??

    Thx



  • Versuchs mal mit lmmsg.h und netapi32.lib als Library.

    Grüße Rapha



  • Seltsam,

    bei mir meckert er immer die NET_API_FUNCTION an !

    Was mache ich denn falsch ?



  • Wie meckert er denn?
    Was kommt für eine Fehlermeldung?



  • Z.B.

    error C2501: 'NET_API_STATUS' : Fehlende Speicherklasse oder Typbezeichner

    error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'NET_API_FUNCTION



  • Bei mir hab ich die lm.h eingebunden.

    Devil


Anmelden zum Antworten