function-pointers

    3熱度

    3回答

    我正在使用Don Clugston的fastdelegates實現一個定時器/回調系統。 (見http://www.codeproject.com/KB/cpp/FastDelegate.aspx) 這裏是起始碼: struct TimerContext { }; void free_func(TimerContext*) { } struct Foo { void m

    1熱度

    1回答

    我正在使用反射來檢查以下方法聲明,並且想知道是否可以確定該方法的唯一參數是函數指針。 public ref class T { public: void foo(Int32 (*)(String^, array<TimeSpan>^)) { } }; 當檢查用於foo的參數的ParameterInfo對象,它示出了參數的類型是IntPtr;這是有道理的,因爲函數指針不是本機CL

    1熱度

    4回答

    我想傳遞一個任意的結構指針數組和比較函數到一個通用的排序算法。這可能在C嗎? 只能在比較函數內訪問結構的陰影,排序函數只需要調用比較函數和交換指針,但我不知道如何聲明它。 function sorter(struct arbitrary ** Array, int Length, int cmp(struct node * a, struct node * b)) { for (int

    2熱度

    5回答

    這是一些C++代碼的摘錄,我將有詳細些日子來解釋: std::vector<int> vct(8, 5); std::generate(vct.begin(), vct.end(), &rand); std::copy(vct.rbegin(), vct.rend(), std::ostream_iterator<int>(std::cout, "\n")); 我想我明白它的

    3熱度

    2回答

    我怎樣才能做到這一點? (下面的代碼不工作,但我希望它解釋了這個想法。) class MyClass { .... private: int ToBeCalled(int a, char* b); typedef (MyClass::*FuncSig)(int a, char* b); int Caller(FuncSig *func, char*

    0熱度

    2回答

    使用結構structure2編寫一個程序來訪問函數「foo」。 typedef struct { int *a; char (*fptr)(char*); }structure1; typedef struct { int x; structure1 *ptr; }structure2; char foo(char * c) { ---

    1熱度

    1回答

    我有一個方法指針象下面這樣: typedef void (MMsnInternalCallBacks::* FuncPtr)(); FuncPtr iSoapActionComplete; 我打電話通過指針iSoapActionComplete像下面下面的方法: (iCallbacks.*iSoapActionComplete)(); 雖然功能被稱爲「Memory Full。嘗試關閉

    3熱度

    4回答

    我想寫一個函數指針的映射函數,並將其傳遞給另一個函數,但gcc對我大喊大叫。 這是我想要做的一個想法。 void map(T thing, void apply(int a, int b, void *cl), void *cl); void function(T thing, void apply(int a, int b, void *cl), void * cl) { fo

    4熱度

    3回答

    我試圖做交互式Java程序非常簡單的命令行庫。您啓動Java程序並提示您輸入命令。語法是: > action [object_1, [object_2, [... object_n] ... ]] 例如: > addUser name "John Doe" age 42 這裏action = "addUser", object_1 = "name", object_2 = "John Do

    2熱度

    4回答

    我有一些二進制數據,其中包含一堆函數並想調用其中一個函數。 我知道這些函數的簽名以及相對於文件開始的偏移量。呼叫約定是默認的:__cdecl。 該文件已被加載到具有執行權限的內存頁面中。 例如(A,B,C是某些類型) void myFunction (A *arg1, B arg2, C arg3); // Signature int myOffset = 0x42; // Offset 我