fprinf wprintf swprintf -- Problem

ragnaroek87

Grünschnabel
Hi leute ich hab ein problem und zwar immer wen ich swprintf, wprintf fprintf benutze bekomme ich folgende Fehlermedungen:
'swprintf' : Konvertierung des Parameters 2 von 'char [15]' in 'const unsigned short *' nicht moeglich. Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.

'wprintf' : Konvertierung des Parameters 1 von 'char [32]' in 'const unsigned short *' nicht moeglich. Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

'fwprintf' : Konvertierung des Parameters 2 von 'class CString' in 'const unsigned short *' nicht moeglich. Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden

Code:
#include <iostream.h>
#include <afx.h>
#include <winsock.h>
#include <process.h>
#include <wchar.h>
....
TCHAR szTemp[2000];
FILE *fp;

void Display(CString szMessage){
	wprintf(szMessage);
	fwprintf(fp,szMessage);
}
....
 
Hallo,

du verwendest mit den printf-Funktionen C-Funktionen. C kennt aber, im Gegensatz zur MFC, keine echten Strings, sondern nur char-Arrays. Übergeben wird im Funktionsaufruf aber eine Zeiger auf einen echten String vom Typ CString. Deshalb mußt du diesen Zeiger in einen char-Zeiger umwandeln.

Mfg
 
Die 3 von dir aufgeführten Funktion sind die Unicode-Varianten der üblichen printf-Methoden.

Ich meine, ein CString ist von Haus aus nur ASCII. Wenn du einen Unicode-CString haben willst, musst du CStringW benutzen (oder dein Projekt auf Unicode umstellen).
 
Zurück