AddString Problem

Seelenfang

Grünschnabel
Hi,

ich programmiere gerade mit VC 6 eine GUI und hab da ein kleines Problem:

Code:
        int DIR;
	int l=0;
	for (l = 0; l < 10; l++)
	{
		DIR = CSmartCardHandler::getInstance()->Directory(500,l);	
		m_dir.AddString(DIR);
	}
Als Ausgabe erhalte ich immer:

:\GUI\SmartDlg.cpp(246) : error C2664: 'AddString' : Konvertierung des Parameters 1 von
'int' in 'const char *' nicht moeglich
Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein
reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.


Dachte ich mir, okay benutze ich einen reinterpret_cast:
Code:
	int DIR;
	const char* DIR2;
	int l=0;
	for (l = 0; l < 10; l++)
	{
		DIR = CSmartCardHandler::getInstance()->Directory(500,l);
		DIR2 = reinterpret_cast<const char*>(DIR);
		m_dir.AddString(DIR2);
	}

Juchu dachte ich mir es , aber zu früh gefreut, beim ausprobieren erhalte ich folgende Fehlermeldung:

Anhang anzeigen Unbenannt.bmp

Vielleicht hat einer eine Idee...
Vilen Dank im Voraus
Tobi
 
Addstring() erwartet einen Zeiger auf einen String, d.h. der zugewiesene Zahlenwert wird entsprechend als Zeiger interpretiert und wo der wohl hinzeigt ...

Man könnte es z.B. so lösen, geht aber bestimmt noch eleganter :-)
Code:
char DIR[] = { 0, 0 };
int l=0;
for (l = 0; l < 10; l++)
{
    DIR[0] = CSmartCardHandler::getInstance()->Directory(500,l);
    m_dir.AddString(DIR);
}

Gruß
MCoder
 
Danke für den Tip, aber jetzt gibt er mir die ASCII Zeichen aus, obwohl er eigentlich den Integer Wert ausgeben soll.
sehe ich das richtig, dass man bei dem AddString Befehl nur char verwenden kann?

Gruß
Tobi
 
Ach so, ich dachte da kommen schon ASCII-Zeichen, die du ausgeben wolltest. ;)
Dann musst du die Daten natürlich konvertieren. Wenn du mit VC6 und der MFC programmierst, kannst du dafür die CString-Klasse nehmen:
Code:
for( int l = 0; l < 10; l++ )
{
    CString strDIR;
    strDir.Format(_T("%d"), CSmartCardHandler::getInstance()->Directory(500,l));
    
    m_dir.AddString(strDIR);
}

Gruß
MCoder
 
Zurück