- [图文] 发一个能在开辟好的共享内存内进行alloc/free..
- 请教高手关于内存泄露及 /proc/meminfo下slab项的意..
- [图文] proc*c/c++的一个问题,如何从C++到C?
- linux下的pro*c/c++的问题,大家看一看,瞧一瞧了!..
- 有软件或者方法能看c/c++程序代码运行效率吗?
- [图文] c/c++出错能打印错误堆栈吗(函数调用堆栈..
- [图文] 求教 大家用的c/c++的profiling tool 哪个比较..
- ssh user@host "rm /bcd/* (中间的分隔符是啥) mv..
- 如何依次循环从“/a/b/c/d”中得到“/a/b/c”等?
- [图文] 请教一个非技术性问题?有哪些好的专门讲C/C+..
- 关于/proc/net/netlink
- 请教c/c++ DB编程方面
- [组图] C/C++版月度送书计划开始啦!(多本Linux程序..
- [图文] 请大侠们推荐一些优秀的,并且相对可以参与的..
- [图文] 讨论下,在C/C++中哪些语句或者函数会申请内存..
- [图文] C/C++程序的内存分配
- [图文] perl扩展操作(哪位有perl与C/C++的结合应用资..
- [图文] 开启固态硬碟SSD高效能领域-Intel X25-M 80GB..
- [图文] C/C++宏定义和函数可以同名吗?
- 大家啊麻烦下C/C++的阅读器和调试器
我在主程序中加载插件,进行数据处理
[table=95%][tr][td][font=FixedSys][color=#0000cc]#include <dlfcn.h>
typedef void *atom;
typedef atom (*Element) (atom, char *);
...
...
Element
findSymbol (char *name)
{
static void *plugin;
plugin = dlopen ("./plugin", RTLD_NOW);
if (plugin)
{
return dlsym (plugin, name);
}
printf ("%s", dlerror ());
return NULL;
}[/color][/font][/td][/tr][/table]
当插件使用C编写时候没有任何问题,但是使用C++编写时,dlopen不能正确的解析符号,于是查找资料,看到这篇文章中提到了C++的“name mangling”(http://linux.web.cern.ch/linux/documentation/mirror/howto/C++-dlopen.html),发现在不得不在主程序中链接插件依赖的一些库,于是使用C++编译器编译主程序,结果出现有名的void*指针问题
[table=95%][tr][td][font=FixedSys]pipeline.c: In function ‘void* (* findSymbol(char*))(void*, char*)’:
pipeline.c:49: 错误:从类型 ‘void*’ 到类型 ‘void* (*)(void*, char*)’ 的转换无效[/font][/td][/tr][/table]
函数findSymbol不能通过编译,请高手指点

