cdecl

    1热度

    1回答

    我用G ++编写64位操作系统的cdecl,和我有一个可变参数函数,如: void DbgPrint(const char *fmt, ...); 其行为应该挺喜欢的printf。 这里的问题是g ++遵循System V ABI,因此它传递RDI,RSI,RDX,RCX,R8,R9中的第一个参数,然后将剩余的(如果有的话)压入堆栈。 将旧的stdarg.h宏va_start,va_arg等与

    0热度

    1回答

    测试cdecl调用约定,但它是关于这一点困惑: 原来的C代码: int __attribute__((cdecl)) add(int a,int b) { int i; i = a+b; return i; } void __attribute__((cdecl)) print(int i, ...) { int j,a,b;

    2热度

    1回答

    下面的代码用mingw 4.7.2和-m64标志编译并运行得很好。 但使用-m32或任何mingw 32bit版本,它无法编译。这是一个错误还是我错过了一个编译器标志? #include <iostream> #include <functional> using namespace std; int __cdecl ccall(int i) {

    4热度

    3回答

    我有一些程序集例程由C函数调用并从中获取参数。现在,我假设这些参数是以cdecl顺序在堆栈上传递的。这是一个公平的假设吗? 编译器(GCC)会检测到这一点,并确保参数传递正确,或者我应该手动去声明它们的cdecl?如果是这样,如果我指定更高的优化级别,该属性是否仍然有效?

    2热度

    1回答

    我正在使用OpenCV库,Boost库和我从这个LINK下载的一段代码编写应用程序。我已创建了Thunk32相同的解决方案下的一个项目,我有以下文件: MainProject.cpp #include "stdafx.h" int main(int argc, char** argv) { IplImage *img = cvLoadImage("C:/Users/Nicolas/

    2热度

    1回答

    铸造时左右(没有双关语意)澄清时,在变量声明中使用__strong我在Transitioning to ARC Release Notes在这些线路传来: 您应该正确装饰变量。当一个对象变量声明中使用限定词,正确的格式是: ClassName * qualifier variableName; 例如: MyClass * __weak myWeakReference; MyClas

    3热度

    2回答

    之前预期的初始化我有cdecl调用约定一个问题: void Test1(char* str, ...) // ok {} void cdecl Test2(char* str, ...) // error: expected initializer before 'Test2' {} int main() {} 我应该怎么做才能让编译器识别cdecl调用约定? 谢谢! 平台

    2热度

    1回答

    任何帮助非常感谢,我的额头上的瘀伤得到。 我们有一个大的开源DICOM库(dcmtk),我们使用一个静态库。它是非托管的C++,我们从包含它的托管C++ DLL链接到它。它使用CMake来构建各种平台的构建指令。移动到VS2010(从2008年)打破了我们的构建,所以我们借此机会更新了我们正在使用的库版本(这应该更友好)。在对现在构建的lib进行一些修改之后(给出或者带来一些关于类型转换的警告)。

    1热度

    2回答

    我在VS中创建了新的Win32项目,并为此选择了动态库(* .dll)。 我在主文件中定义的一些出口函数: __declspec(dllexport) int TestCall(void) { int value = 4/2; std::cout << typeid(value).name() << std::endl; return value; } __

    6热度

    1回答

    我有一个弯路问题。众所周知,Detours只能在5个字节的空间中移动(即'jmp'调用和4个字节的地址)。正因为如此,在一个类(方法)中不可能有'钩子'函数,所以你不能提供'this'指针,因为没有足够的空间(here's这个问题更加彻底的解释)。所以我一整天都在为解决方案进行头脑风暴,现在我想要关于这个问题的想法,所以我不开始一个3-5天的项目,不知道它是否可行。我想让'钩子'函数成为类方法,我