免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: albcamus
打印 上一主题 下一主题

趁五一整理了一份FAQ,新手看一下 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-05-10 15:27 |只看该作者

趁五一整理了一份FAQ,新手看一下

不错不错。辛苦辛苦。

多出一些合集还是不错的,也是很有必要的。

论坛徽章:
0
12 [报告]
发表于 2005-05-11 09:26 |只看该作者

趁五一整理了一份FAQ,新手看一下

真的不错,菜鸟都该多看看.

论坛徽章:
0
13 [报告]
发表于 2005-05-14 16:48 |只看该作者

趁五一整理了一份FAQ,新手看一下

楼主辛苦了

论坛徽章:
0
14 [报告]
发表于 2005-05-14 23:23 |只看该作者

趁五一整理了一份FAQ,新手看一下

《C程序设计语言》第二版现只能买到中译本,是徐宝文翻译的,翻译质量不是很好。我很想买影印版的,可惜影印版的已经绝版了。

哎!

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
15 [报告]
发表于 2005-05-15 19:27 |只看该作者

趁五一整理了一份FAQ,新手看一下

再补充 albcamus 一本书:
Computer Systems: A Programmer's Prespective

论坛徽章:
0
16 [报告]
发表于 2005-05-16 17:08 |只看该作者

趁五一整理了一份FAQ,新手看一下

楼上的大哥大姐都很熟吗?俺是新手请多多指教~~~~

论坛徽章:
0
17 [报告]
发表于 2005-05-17 09:56 |只看该作者

趁五一整理了一份FAQ,新手看一下

入门linux编程我还是推荐 Linux程序设计 作为第一本书。

论坛徽章:
0
18 [报告]
发表于 2005-05-17 14:33 |只看该作者

趁五一整理了一份FAQ,新手看一下

我想学,不过路很长,真的提不起劲

论坛徽章:
0
19 [报告]
发表于 2005-05-20 17:42 |只看该作者

趁五一整理了一份FAQ,新手看一下

Q:c能调用c++封装的动态库吗?
A:可以,使用dlopen , dlsym 和 extern "C"
下面是个简单的例程:

[root@localhost dlopen]# ls
chello.cpp  hello.cpp  include  main.c
[root@localhost dlopen]# cat include/hello.h
#ifndef _HELLO_H_
#define _HELLO_H_

class CHello
{
public:
        CHello();
        ~CHello();
        int Print();
};

#endif
[root@localhost dlopen]# cat hello.cpp
#include "hello.h"
#include <iostream>;

CHello::CHello()
{

}

CHello::~CHello()
{

}

int CHello:rint()
{
        std::cerr << "hello world !" << std::endl;
}
[root@localhost dlopen]# cat chello.cpp
extern "C"
{
        #include "hello.h"

        int cprint()
        {
                CHello * phello;
                (void *)phello =  (void *)new CHello ;

                (void *)phello->; Print();

                return 0;
        }
}
[root@localhost dlopen]# cat main.c
//#include "chello.h"
#include <dlfcn.h>;
#include <stdio.h>;
#include <stdlib.h>;
int cprint();

int
main ()
{
  char *error;
  void *handle = dlopen ("libhello.so", RTLD_NOW);
  if (!handle)
    {
      fprintf (stderr, "%s\n", dlerror ());
      exit (1);
    }

  int (*dlprint)() ;
  (void *)dlprint = dlsym (handle, "cprint";
  if ((error = dlerror ()) != NULL)
    {
      fprintf (stderr, "%s\n", error);
      exit (1);
    }

  (*dlprint)();

  dlclose (handle);


  return 0;
}
[root@localhost dlopen]# g++ -I./include -c hello.cpp
[root@localhost dlopen]# g++ -I./include -c chello.cpp
[root@localhost dlopen]# g++ -fPIC -shared -o libhello.so  hello.o chello.o
[root@localhost dlopen]# gcc  -I./include -o main main.c  -lhello -ldl
[root@localhost dlopen]# ls
chello.cpp  chello.o  hello.cpp  hello.o  include  libhello.so  main  main.c
[root@localhost dlopen]# ./main
hello world !
[root@localhost dlopen]#

论坛徽章:
0
20 [报告]
发表于 2005-05-22 11:07 |只看该作者

趁五一整理了一份FAQ,新手看一下

dalong向albcamus 致敬,人民感谢你!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP