dlsym

    0熱度

    1回答

    我真的很討厭不得不在這裏提問。但我一直在尋找some of the other posts,像這樣的解決方案似乎並不奏效。它可能是我對語法的誤解。 我正在改進我的一些舊代碼。問題中的函數循環遍歷一些加載的模塊並運行一個函數。當我在x86上時,這段代碼工作得非常好,但跳到64位正在搞砸了一切。 int FindCmd(ArgS *Args) { /* We need to check o

    3熱度

    1回答

    是否可以使用dlsym從框架中加載已命名的未導出符號? 我試圖導入符號有指其框架內提到了一個名字。這是我需要調用的一個函數。 我試圖做到這一點通常dlopen + dlsym方式,但是當我嘗試加載未導出的符號,dlsym返回NULL 指針。

    1熱度

    2回答

    我在編寫C++框架時遇到了問題,即用戶的開銷應該比使用它少。用戶可以通過創建一個共享庫來發布他們的工作,這些共享庫包含一個類,該類由框架的BaseClass派生,並實現一個extern「C」createInstance()方法,以便將實例的派生類返回。因此,框架可以通過使用dlsym()通過共享庫調用createInstance-Method來訪問用戶類。 class BaseClass{} c

    0熱度

    2回答

    我已經使用dlsym()調用我的版本的malloc,而不是默認的庫的malloc: lt_malloc = (void*(*)(size_t))dlsym(RTLD_NEXT, "malloc"); TRACE((stderr, "initialize: lt_malloc=%p\n", lt_malloc)); if (!lt_malloc) { fprintf(stderr, "

    3熱度

    2回答

    我無法通過iOS中的名稱調用函數嗎?我有一個C函數getstring。 void* handle = dlopen(NULL, RTLD_NOW); if (handle) { fp func = dlsym(handle, "getstring"); if (!func) responseField.text = [NSString stringWithUTF8String:d

    2熱度

    2回答

    奇怪的是,dlsym可以從已刪除的二進制文件中導入函數。 有誰能告訴我爲什麼/如何? === FILE: a.c === int a1() { return 1; } int a2() { return 2; } === end of a.c === === FILE: b.c === #include <stdio.h> #include <dlfcn.h> #include <

    7熱度

    1回答

    背景: ,我發現自己與移植C++的GNU/Linux的應用程序在Windows的不值得羨慕的任務。這個應用程序所做的一件事就是搜索特定路徑上的共享庫,然後使用posix dlopen()和dlsym()調用動態加載它們。我們有一個非常好的理由來做這種裝載,我不會在這裏進入。 問題: 動態地發現由C++編譯器使用dlsym()或GetProcAddress的產生的符號()它們必須使用一個extern

    8熱度

    5回答

    在我的C++程序中,如何在運行時以編程方式檢測符號是否已通過Linux上的「strip」gnu開發工具進行了剝離? 我想要一個函數定義,如果剝離返回true,否則返回false。 在「main()」上使用dlsym()是否可以可靠地檢測到它?

    1熱度

    2回答

    我一直在關注使用Swig將C和TCL結合在一起的教程。該教程似乎正常工作,但最終我遇到了一個我無法解決的錯誤。情況如下: 我跟着的教程是: http://www.swig.org/tutorial.html。 我有一個名爲test.c的文件: char *HelloWorld() { return "hello world"; } ,另一個名爲test.i: %module te

    6熱度

    2回答

    我收到以下錯誤,當我試圖運行一個腳本,我只有執行權限:這是後我已經設置LD_PRELOAD環境 uname: symbol lookup error: /home/dumindara/random/sotest/a.out: undefined symbol: dlsym 變量爲/home/dumindara/random/sotest/a.out。 a.out已測試malloc函數,並在內部調用