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天的項目,不知道它是否可行。我想讓'鉤子'函數成爲類方法,我