Solo intentaba hacer una interoperabilidad gestionada/no gestionada. Para obtener información sobre el error decidí registrar una devolución de llamada de registro que ofrece el DLL: obrasC# P/Invoke: llamada de delegado Varargs
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void LogCallback(void* arg1,int level,byte* fmt);
esta definición, pero me sale cadenas como "sondeado formato% s con el tamaño =% dy puntuación =% d". Intenté agregar la palabra clave __arglist, pero no está permitido para los delegados.
Bueno, no es tan dramático para mí, pero solo me da curiosidad si se pueden obtener los parámetros varargs en C#. Sé que podría usar C++ para la interoperabilidad. Entonces, ¿hay alguna manera de hacer esto puramente en C#, con un esfuerzo razonable?
EDITAR: Para aquellos que todavía no lo entendía: estoy NO importadores una función varargs PERO exportarlo como una devolución de llamada, que luego se llamó a mi código nativo. Puedo especificar solo uno a la vez -> solo es posible una sobrecarga y __arglist NO funciona.
[This] (http://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/301588-how-hooking-functions-wow- variable-arguments-c.html) podría ser útil. – IllidanS4