Rückgabe wchar_t



  • Hallo ich möchte über GetPrivateProfileString Daten einlesen, diese dann in einem Objekt der Klasse read_serverlist speichern und dann in der aufrufenden Umgebung mir die Daten ausgeben lassen. Wenn ich statt wchar_t int verwende funktioniert es auch. Bei wchar_t wird wird jedoch nichts ausgegeben.Wieso?

    read_serverlist::read_serverlist(void)
    {
    	GetPrivateProfileString(szSectionName,
    szKeyName_s,
    DefaultValue,
    servername,
    (sizeof(servername))/(sizeof(wchar_t)),
    szFilename);
    cout << GetLastError()<<"\n";
    wcout << servername << "\n"; //Hier wird noch richtig ausgegeben
    }
    wchar_t read_serverlist::give_data(void)
    {
    	cout << "test"; //ausgegeben
    	return servername[250]; 
    
    }
    

    Aufrudende Umgebung

    read_serverlist LeseListe;
    wcout << LeseListe.give_data();//Hier wird nichts ausgegeben, bei int als Rückgabe funktioniert es jedoch
    

    In read_serverlist.h

    #pragma once
    
    class read_serverlist
    {
    public:
    	read_serverlist(void);
    	wchar_t read_serverlist::give_data(void);
    	wchar_t servername[250]; //bei Eigenschaft als int funktioniert
    	wchar_t login_user[250];
    	wchar_t password[150];
    	wchar_t source_txt[150];
    	wchar_t destination_txt[250];
    	wchar_t destination_folder[250];
    public:
    	~read_serverlist(void);
    };
    

  • Mod

    wchar_t ist 1 Zeichen und kein String!

    Beschätfige Dich etwas mehr damit wie Zeichenketten in C/C++ verwendet werden oder nimm gleich std::wstring, oder CString oder CStringW!



  • Habe es mit strings versucht. Ist aber danebengegangen.

    'give_data': missing return type; assumed to be a member function returning 'int'
    syntax error : missing ';' before identifier 'nameserver'

    In cpp-Datei

    CString read_serverlist::give_data(void) 
    { 
        cout << "test"; 
        return nameserver; 
    
    }
    

    In Headerdatei

    #pragma once
    #include <string.h>
    class read_serverlist
    {
    public:
    	CString read_serverlist::give_data(void);
    	read_serverlist(void);
    	CString nameserver;
    	wchar_t servername[250]; 
    	wchar_t login_user[250];
    	wchar_t password[150];
    	wchar_t source_txt[150];
    	wchar_t destination_txt[250];
    	wchar_t destination_folder[250];
    public:
    	~read_serverlist(void);
    };
    

    Kann mir jemand vielleicht ein kleines Beispiel geben, wie man es richtig macht?



  • wulfgang schrieb:

    In Headerdatei

    #pragma once
    #include <string.h>
    class read_serverlist
    {
    public:
    	CString give_data(void);
    	read_serverlist(void);
    	CString nameserver;
    	wchar_t servername[250]; 
    	wchar_t login_user[250];
    	wchar_t password[150];
    	wchar_t source_txt[150];
    	wchar_t destination_txt[250];
    	wchar_t destination_folder[250];
    public:
    	~read_serverlist(void);
    };
    

    give_data in der Headerdatei is falsch definiert, meiner Meinung nach.

    Gruß


Anmelden zum Antworten