Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1334160
  • 博文数量: 436
  • 博客积分: 7854
  • 博客等级: 少将
  • 技术积分: 3225
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-18 16:30
文章分类

全部博文(436)

文章存档

2013年(2)

2012年(56)

2011年(70)

2010年(308)

分类:

2010-07-18 02:27:31

要将一个c++ lib在c语言中使用,老板说要做一个warpper,谁能告诉我到底什么是warpper,如何写呢??
最好能给我个例子,谢谢!急死了。。。
 
1.
我觉得C库在C++中使用,做wrapper才自然。。C怎么使用C++库啊?没思路。。

2.

反过来做。。。但是这warpper怎么个做法阿?有例子么?
我看到还有另一种做法,在cxx文件中写个什么extern "c" {}
这都是怎么一回事阿。

3.man dlopen
man dlsym
exetern c
{}
引出来,用指针调引用

4.很新鲜嘛,现在的老师也都是来几个名词,不说清楚吗?是不是他自己也不懂啊?我是很想帮你,可惜我的aix开发环境没装c++编译器

原来是老板...,另楼上的思路应该是可行的,可惜extern写错了,哈

思路是这样,可以一试
.cpp里
#include ;

void prt()
{
   cout<<"hello, world"<}

extern "C" void prt_wrapper()
{
    prt();
}

用c++编译器编译出.o
在.c中调用这个prt_wrapper
用连接器连接程序看看,会有什么结果

-------------------------------------------

系统调用wrapper是什么意思?

系统调用wrapper是否指可以在系统调用的开头或结尾插入同样的语句,例如可以实现每次执行系统调用时,都打印一条语句?

不是。wrapper是个很泛泛的说法,指的是给某个函数加以包裹(这就是为什么叫做“wrapper”),使之呈现出更好的接口。比方说,你可以为glibc的所有函数写C++封装,这就叫wrapper。显然它和系统调用没有必然关系,只不过syscall也是C函数,也可以加以封装而已。

 

阅读(4223) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~