dlsym

    2热度

    3回答

    的情况下,我创建一个使用dlsysm(剪切对象开放),但我收到以下错误: error: invalid conversion from "void*" to "void (*)()" 这里是我的代码: #include<iostream> #include<dlfcn.h> using namespace std; int main() { void (*fnptr)();

    1热度

    1回答

    已经解决!See the result here。 不知道我是否在正确的地方问,但有没有人知道基于.h文件生成dlopen和dlsym命令的正确方法? 我想动态加载SDL2 - 这是一个用C编写的库 - 但所有提取函数列表和他们的参数与ctags的方法似乎没有结果(必须手动更正240个函数的参数列表3500是不好玩)。 ctags -R -x --sort=yes --c++-kinds=+p -

    4热度

    1回答

    我知道如何使用dlsym()来查找由字符串键入的符号 - 当这些符号由共享库导出时,我已经使用dlopen() ed。但是 - 其他代码呢?只是静态链接的对象代码。有没有可能以某种方式查找符号? 注: 如果有帮助,使有关编译和连接过程中的任何合理的假设(如该编译器,调试信息存在,PIC代码等) 我感兴趣更多的是在非操作系统特定的解决方案中,但如果它很重要:Linux。 涉及功能预注册的解决方案不相

    -1热度

    1回答

    你好我的工作是工作原理是这样的程序: ./Filters File [filters...] 过滤器可以有很多,我想创建自己和他们APLY到文件的.so库。但是所有库都具有相同的功能process(a1,a2,a3),只是它们每个都做了不同的事情。 我试图用这样的: /*Open the library*/ if (!(descriptor_lib=dlopen(dir_filter, RTLD

    2热度

    1回答

    我有一个JavaScriptCore框架的分支,我添加了一个我自己的函数,该函数被导出。该框架编译只是找到。在框架运行nm揭示了功能(JSContextCreateBacktrace_unsafe)的确是出口: Leo-Natans-Wix-MPB:JavaScriptCore.framework lnatan$ nm -gU JavaScriptCore.framework/JavaScript

    1热度

    1回答

    dlsym()的man page名单 *(void **) (&cosine) = dlsym(handle, "cos"); 作为用于铸造的dlsym()返回值一种解决方法。 *(void **) (&cosine)这是什么意思?据我所知cosine是一个先前定义的函数指针,但我不知道为什么在名称前需要使用&符号&(错误没有&)。此外,我不知道为什么指针void *(void **)再次与*

    1热度

    2回答

    我需要从使用C++的Solaris 10上的当前可执行文件中知道函数地址(我正在使用GNU g ++ 4.9.2)。例如,我有一个函数说:void doSomething(const char * p),它可能会或可能不会在当前的可执行文件中定义。所以,我想搜索当前可执行文件中的函数(如果存在),然后调用该函数执行一些默认操作。我怎么做? dlsym会帮忙吗? 请帮助我的语法和损坏的名称。

    3热度

    1回答

    我正在使用dlsym在程序中查找符号,但它始终返回NULL,这并不是我期待的。根据手册页,如果出现错误,dlsym可能会返回NULL,或者符号确实为NULL。在我的情况下,我收到一个错误。我会告诉你我今晚做的MCVE。 这里是instr.c的内容: #include <stdio.h> void * testing(int i) { printf("You called testin

    1热度

    1回答

    我想动态链接一个Rust .so库与Linux中的C程序与gcc。在没有错误只使用dlopen和dlclose结果,但我得到了下面的代码段故障: char * (*my_function)(char *); char *my_input_string = "foo"; //...abbreviated code... my_function = dlsym(handle, "my_fun

    4热度

    1回答

    很容易找到使用 dlsym()和这个系列的其他功能,但如何在内部工作?是否有可能编写自己的,简单的dlsym()实现? 我想知道是否可以实现类似的行为,但不与连接-ldl(可以说,我不能这样做)。