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函数,并在内部调用