cdecl

    0热度

    3回答

    我有一个使用__cdecl调用约定(msvc2010)编译的项目,我使用相同的编译器使用默认设置编译boost。 该项目与升压联系,但我在运行时我得到了这样的断言消息: 文件:... \提升\提升\ program_options \详细\ parsers.hpp 行:79 运行时检查失败#0 - 在函数调用中未正确保存ESP的值。这通常是调用一个调用约定的函数声明的结果,其中函数指针声明的调用约

    4热度

    4回答

    我的解决方案有一个非托管的C++ DLL,它导出一个函数,以及一个PInvokes这个函数的托管应用程序。 我刚刚将.NET 3.5的解决方案转换为.NET 4.0,并得到了这个PInvokeStackImpalance “调用PInvoke函数时出现了不均衡堆栈”异常。事实证明,我打电话__cdecl'ed功能,因为它是__stdcall: C++部分(被叫): __declspec(dllex

    41热度

    12回答

    我听说过一些方法,但都没有卡住。就我个人而言,我尝试在C中避免复杂的类型,并尝试将它们分解为组件typedef。 我现在正在维护一个所谓'三星程序员'的遗留代码,而且我很难读一些***代码[] []。 您如何阅读复杂的C声明?

    2热度

    2回答

    我有一个库(C++),它有一些API函数。其中之一被声明为__cdecl,但是从__stdcall获取函数poiner。喜欢的东西: typedef int (__stdcall *Func)(unsigned char* buffer); //... int ApiFunc(Func funcPtr); //This is __cdecl since it is an 'extern "C"

    2热度

    1回答

    如何将C main函数的参数传递给汇编函数?我知道我的自定义函数必须看起来像: void function(char *somedata) __attribute__((cdecl)); 现在我将如何在装配文件中使用somedata。我的操作系统是Linux Ubuntu,我的处理器是x86。

    5热度

    3回答

    为什么Foo()成功,但Bar()会抛出BadImageFormatException? using System.Runtime.InteropServices; using System.Text; static class Program { [DllImport("msvcrt.dll", CallingConvention = CallingConvention.Cde

    1热度

    1回答

    我有两个问题: 是用于stdcall调用总是 4字节的堆栈对准,或者是它4为32位机和8为一个64位的机? cdecl的栈对齐大小是多少? 我使用Microsoft Visual Studio 2010