8
我正在研究將爲Windows編寫的腳本引擎移植到Linux;它適用於Winamp的可視化平臺AVS。我不確定目前是否有可能。從我可以告訴代碼正在使用C函數nseel_asm_atan
和nseel_asm_atan_end
的地址,並將它們存儲在它可以在代碼執行過程中引用的表內。有人可以解釋__declspec(裸體)嗎?
我已經看過MS的文檔,但我不確定__declspec(naked)
究竟做了什麼。文檔中提到的prolog和epilog代碼是什麼?這與Windows調用約定有關嗎?這是便攜式嗎?瞭解使用類似技術的任何基於Linux的示例?
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) {}
這就是他們所說的序言和結語:HTTP:// msdn.microsoft.com/en-us/library/tawsa7cb(VS.80).aspx,我非常肯定,你可以'#define __declspec(n)'擴展到Linux。我認爲GNU C++實現了類似的功能,但我不太確定它是什麼。 – 2010-06-11 11:01:47