Buenas,
Cargo una libreria programada en ensamblador de la siguiente manera:
[DllImport("packet.dll", EntryPoint= "XTEA")]
private static extern Int16 XTEA(bool encriptar, Int16 tibiaID, byte[]
key,
byte[] packet, byte[] packetEncriptado, bool safeArray);
y la llamo asi:
byte[] key = ASCIIEncoding.ASCII.GetBytes("0123456789ABCDEF");
byte[] packet = ASCIIEncoding.ASCII.GetBytes("Hello this is a test");
byte[] encriptado = new byte[packet.Length];
XTEA(true, 0, key, packet, encriptado, true);
Cuando llama a la funcion, me devuelve una excepcion
AccessViolationException, con el mensaje de: "Intento de leer o
escribir en
la memoria protegida. A menudo, esto indica que hay otra memoria
dañada."
En la documentacion de la libreria dicen que el prototipo de la
funcion es:
DWORD XTEA(
BOOL Encrypt,
DWORD ProcessID,
POINTER Key,
POINTER Packet,
POINTER XTEApacket,
BOOL SafeArray,
);
A que puede ser debido este problema y como podria solucionarlo?
Gracias por leerme,
Manu~
Leer las respuestas