ASCII c++

Iniciado por Riki_89D, 24 Mayo 2010, 21:31 PM

0 Miembros y 1 Visitante están viendo este tema.

Riki_89D

Hola que tal andan?

veran tengo este code:
Código (cpp) [Seleccionar]

#include <C:\Dev-Cpp\All.h>
using namespace std;

int main(void)
{

int String = 82;
HANDLE Fil = CreateFile("f.dll",GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
int SizeMax = GetFileSize(Fil,0);
SizeMax <<1;
HANDLE Map = CreateFileMapping(Fil,0,PAGE_READWRITE,0,SizeMax,0);
void *ptr = MapViewOfFile(Map,FILE_MAP_ALL_ACCESS,0,0,0);
char *ptr2 = (char*)ptr+0x54234;
memcpy(ptr2,&String,sizeof(String));




return 0;
}



ese code escribe en la direccion de memoria especificada un caracter,escribe la letra R que es 82 en ascii,pero necesito escribir mas de un caracter i nose como hacerlo ,los espacio etc etc como escribo mas de un caracter en ASCII,la variable String es  = 82,no puedo poner String =82105 etc...es decir no puedo poner todos los caracteres juntos en ASCII,tengo k hacerlo asi por k es unicode por desgracia mia


un saludo

[Zero]

Ahí no estás escribiendo un 82, estás escribiendo un 00000082, que no es lo mismo. Utiliza 'char caracter=82'.

Para copiar más de una letra no tienes más que usar un bucle:

Código (cpp) [Seleccionar]
char *String="asdf";
(...)

char *ptr2=(char*)ptr+0x54234;
for(int i=0;i<lstrlenA(String);i++)
{
     ptr2[i]=String[i];
}


Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

Riki_89D

Heii k tal?

lo k pasa es que no quiero escribir un 82 sino el caracter R,es que lo k quiero modificar esta en UNICODE i klaro no puedo escribir Directamente una cadena normal...menudo un problemo k me ronda...i claro es facil decir Busca en Google si yo lo entiendo...pero yo YA BUSCQUE!! xD i no encontre nada! por eso estoy aki ando ya desesperado

gracias por tu respuesta

[Zero]

Para unicode es casi lo mismo, en unicode las letas se alternan con ceros, y el caracter nulo es un doble cero: {'a',0,'s',0,'d',0,'f',0,0}

Puedes usar el mismo code de antes utilizando lstrlenW en vez de lstrelenA y (wchar*) en vez de (char*).

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

Riki_89D

Ok thanks peor una ultima kosa,no me reconoce WCHAR el Dev-C++:S esta en alguna libreia esecial o algo?

[Zero]

http://msdn.microsoft.com/en-us/library/ms684497(EXCHG.10).aspx

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

atamd

Cita de: Hacker_Zero en 24 Mayo 2010, 22:16 PM
Para unicode es casi lo mismo, en unicode las letas se alternan con ceros, y el caracter nulo es un doble cero: {'a',0,'s',0,'d',0,'f',0,0}

Puedes usar el mismo code de antes utilizando lstrlenW en vez de lstrelenA y (wchar*) en vez de (char*).

Saludos