首页 > TAG信息列表 > calling-convention

c-ESP的值未正确保存

从上图可以看到,函数setAttribute从其调用返回时发生错误. 有谁知道如何解决图片中显示的错误?我知道调用约定之间存在错误,但是如何找出setAttribute的调用约定呢?解决方法:此错误表明您的堆栈已损坏.有很多方法可以到达那里.如错误消息中所述,可以使用不同的调用约定,但是这种情况

c – 编译器忽略__stdcall

在我看来,MSVS忽略了我的函数的__stdcall指令.我正在手动清理堆栈,但编译器在每次调用后仍会附加ADD ESP指令. 这是我声明函数的方式: extern "C" void * __stdcall core_call(int addr, ...); #define function(...) (DWORD WINAPI) core_call(12345, __VA_ARGS__) return functio

c – 我可以将__cdecl导出调用与DLL中的__stdcall导入调用混合使用吗?

我正在为第三方应用程序编写模块;该应用程序使用__cdecl调用约定. 与此同时,我有一个使用__stdcall调用约定的遗留DLL. 我可以创建一个包装器,在一端导出__cdecl函数,而在另一端导入__stdcall函数?我还有哪些其他选择? 谢谢, 编辑: 这是一些额外的信息,我的帮助澄清了我的情况. 有一个

为什么即使回调参数与XML中的回调参数不匹配,仍会调用GObject方法?

假设我有这样的方法 <interface name="org.Test.ChildTest"> <!-- set_age(guint32 new_age): sets new age --> <method name="set_age"> <arg type="u" name="new_age" direction="in&q

WinCE和Linux上的ARM调用约定?

WinCE和Linux在ARM上使用相同的调用约定吗?有什么区别? 到目前为止我找到的文件并没有很好地解释.例如,在http://msdn.microsoft.com/en-us/library/ms864497.aspx上,它在一行上显示“Windows CE .NET Compiler”,但在下一行显示“ARM编译器”,在底部显示“CLARM”,并且不清楚它是指