【问题标题】:passing an argument into a C++ shared library将参数传递到 C++ 共享库
【发布时间】:2013-06-27 13:18:18
【问题描述】:

我想通过 loader.exe 将参数传递到 C++ 共享库 lib.so 中。

抱歉,更新问题。

共享库,如:

int count(){
         int num = 9;
         int result = 0;
         for ( int i = 0; i < num; i++ ){
                 result ++;
         }
         return result;
}

在loader.exe中,使用dlopen来加载它。

void *handler = dlopen("lib.so", RTLD_LAZY);

我想从 loader.exe 更改 num 的值。当我调用函数 count() 时,它可以给我新的结果。

我该怎么办?

谢谢!

【问题讨论】:

  • 这个问题太疯狂了。如果不涉及任何共享库,这甚至没有意义。
  • @user2413399:我已经更新了我的答案。请检查一下。
  • 是的,正如 Kerrek 所说,这个问题实际上与共享库无关。

标签: c++ linux shared-libraries visibility


【解决方案1】:

您可以在加载程序中定义一个全局变量num(设置为所需的值)并更改

     int num = 9;

     extern int num;

.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2017-01-30
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多