edit
...Quote:
Quote:
BYTE Packet[] = "packetname test";
BYTE new_Packet[16];
for (int i = 0; i < strlen(Packet); i++)
{
new_Packet[i] = (BYTE)(Packet[i]+0x0A);
}
new_Packet[15] = 0;
send(Connect,new_Packet,strlen(new_Packet),0);Quote:
BYTE Packet[] = "packetname test";
BYTE* new_Packet = new BYTE[strlen(Packet)+1];
int i;
for (i = 0; i < strlen(Packet); i++)
{
new_Packet[i] = (BYTE)(Packet[i]+0x0A);
}
new_packet[i] = 0;
send(Connect,new_Packet,strlen(new_Packet),0);
Dein 2tes Beispiel geht nicht -> Crash, hab die Variable umgenannt und in der for Schleife bei jeden Durchlauf um 1 erhöht und dann 0 terminiert, passiert ingame aber immernoch nichts.Quote:
dein erstes von dem du behauptest es würde funktionieren müsste aber eigtl schon ganz schön unfug angestellt haben...
die strings die du da erstellst sind ja nich null-terminiert, guck, ob du auch sicher alles so wie ich geschrieben habe hast, hab noch was hervorgehoben...
Quote:
zeig mal deinen neuen code.
@Edit:
wenn dein new_Packet global war, wurde es mit 0 initialisiert, dann tritt das problem nicht auf.
BYTE Packet[] = "packetname test";
BYTE *new_Packet = new BYTE[strlen(Packet)+1];
int f = 0;
for (int i = 0; i < strlen(Packet); i++) {
new_Packet[i] = (BYTE)(Packet[i]+0x0A);
f++;
}
new_Packet[f] = 0;
send(sConnect,new_Packet,strlen(new_Packet),0);
new_Packet[strlen(Packet)] = 0;
BYTE Packet[] = "packetname test";
for (int i = 0; i < strlen(Packet); i++)
{
Packet[i] += 0x0A;
}
send(sConnect, Packet, strlen(Packet), 0);
new_Packet[i] = (BYTE)(Packet[i]+0x0A);
Quote:
funktioniert das denn?Code:BYTE Packet[] = "packetname test"; for (int i = 0; i < strlen(Packet); i++) { Packet[i] += 0x0A; } send(sConnect, Packet, strlen(Packet), 0);
wieso castest du das hier überhaupt:
als was ist BYTE typedef't in deinem compiler?Code:new_Packet[i] = (BYTE)(Packet[i]+0x0A);
Quote:
typedef unsigned char Byte; // 0..255
Jep BYTE==Byte.Quote:
BYTE == Byte?
ist sehr seltsam, dass dein erstes beispiel überhaupt funktioniert, sicher, dass das nicht nur ein zufallstreffer war o.ä.?
eigtl hätte der schon wegen der fehlenden 0-terminierung, zmdst ab und zu amok laufen müssen.
BYTE Packet[] = "packetname test";
BYTE new_Packet[255];
for (int i = 0; i < sizeof(Packet); i++) {
new_Packet[i] = (BYTE)(Packet[i] + 0x0A);
}
send(sConnect,new_Packet,sizeof(new_Packet),0);
Quote:
send(Connect,new_Packet,strlen(new_Packet)+1,0);