Estoy buscando en portar un motor de script escrito para Windows a Linux; es para la plataforma de visualización AVS de Winamp. No estoy seguro si es posible en este momento. Por lo que puedo decir, el código toma las direcciones de las funciones C nseel_asm_atan
y nseel_asm_atan_end
y las almacena dentro de una tabla a la que puede hacer referencia durante la ejecución del código.¿Podría alguien explicar __declspec (desnudo) por favor?
He visto la documentación de MS, pero no estoy seguro de qué es realmente __declspec(naked)
. ¿Qué es el código prólogo y epilog mencionado en la documentación? ¿Está relacionado con las convenciones de llamadas de Windows? ¿Es esto portátil? ¿Conoce algún ejemplo basado en Linux que use técnicas similares?
static double (*__atan)(double) = &atan;
__declspec (naked) void nseel_asm_atan(void)
{
FUNC1_ENTER
*__nextBlock = __atan(*parm_a);
FUNC_LEAVE
}
__declspec (naked) void nseel_asm_atan_end(void) {}
Esto es lo que quieren decir con prólogo y epílogo: http: // msdn.microsoft.com/en-us/library/tawsa7cb(VS.80).aspx, estoy bastante seguro de que puedes simplemente '#define __declspec (n)' expandirse a nada para Linux. Creo que GNU C++ implementa algo similar, pero no estoy seguro de qué es lo que está fuera de mi cabeza. –