<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            C語言

            如何在C語言中調用C++做的動態鏈接庫

            時間:2024-12-06 02:17:54 C語言 我要投稿
            • 相關推薦

            如何在C語言中調用C++做的動態鏈接庫

              如果你有一個c++做的動態鏈接庫.so文件,而你只有一些相關類的聲明,那么你如何用c調用呢?下面百分網小編帶大家一起來看看詳細內容,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

              鏈接庫頭文件:

              head.h

              class A

              {

              public:

              A();

              virtual ~A();

              int gt();

              int pt();

              private:

              int s;

              };

              firstso.cpp

              #include <iostream>

              #include "head.h"

              A::A(){}

              A::~A(){}

              int A::gt()

              {

              s=10;

              }

              int A::pt()

              {

              std::cout<<s<<std::endl;

              }

              編譯命令如下:

              g++ -shared -o libmy.so firstso.cpp

              這時候生成libmy.so文件,將其拷貝到系統庫里面:/usr/lib/

              進行二次封裝:

              secso.cpp

              #include <iostream>

              #include "head.h"

              extern "C"

              {

              int f();

              int f()

              {

              A a;

              a.gt();

              a.pt();

              return 0;

              }

              }

              編譯命令:

              gcc -shared -o sec.so secso.cpp -L. -lmy

              這時候生成第二個.so文件,此時庫從一個類變成了一個c的接口.

              拷貝到/usr/lib

              下面開始調用:

              test.c

              #include "stdio.h"

              #include "dlfcn.h"

              #define SOFILE "sec.so"

              int (*f)();

              int main()

              {

              void *dp;

              dp=dlopen(SOFILE,RTLD_LAZY);

              f=dlsym(dp,"f");

              f();

              return 0;

              }

              編譯命令如下:

              gcc -rdynamic -s -o myapp test.c

              運行Z$./myapp

              10

              $

            【如何在C語言中調用C++做的動態鏈接庫】相關文章:

            怎么在C語言中調用C++做的動態鏈接庫07-15

            如何在C/C++中調用Java03-13

            如何在c語言中調用Linux腳本07-09

            C/C++函數調用的方式07-29

            C++調用C函數的方法05-21

            C++如何調用matlab函數06-29

            C與C++之間相互調用的實例07-07

            C/C++函數調用的方式有哪些06-23

            C語言中Swift函數調用實例01-17

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看