Ich versuche gerade Sourcecode aus VC6 in VC7 zum Laufen zu bringen. Dabei bekomme ich in folgender Funktion am Ende einen Runtime Error "Stack around the variable 'Byte2' was corrupted" (Die Umwandlung funktioniert aber trotzdem)
Code: Alles auswählen
void String2Bin(CString String, BYTE *Bin, int *BinLen)
{
//BinLen input is max. length
CString String2;
char ByteString[3];
int i;
int DestPos;
int MaxBinLen;
BYTE Byte2;
MaxBinLen = *BinLen;
ByteString[2] = 0;
*BinLen = 0;
if(MaxBinLen <= 0)
{
return;
}
if(String.GetLength() <= 0)
{
return;
}
if(String.GetLength() > (MaxBinLen * 2))
{
return;
}
if((String.GetLength() % 2) != 0)
{
return;
}
String.MakeUpper();
DestPos = 0;
for(i=0; i<String.GetLength(); i+=2)
{
ByteString[0] = String.GetAt(i);
ByteString[1] = String.GetAt(i+1);
sscanf(ByteString, "%02X", &Byte2);
Bin[DestPos++] = Byte2;
}
//Gegenprobe
Bin2String(&String2, Bin, DestPos);
if(String2.CompareNoCase(String) != 0)
{
//Fehler: String ist ungueltig
*BinLen = 0;
return;
}
*BinLen = DestPos;
}
MfG
miCro