在C中的DLL中的许多函数之间共享变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C中的DLL中的许多函数之间共享变量相关的知识,希望对你有一定的参考价值。

你好(抱歉我的英文不好)。

在我的空闲时间,我在python(3.5)中做了一个小应用程序。

这个应用程序将不得不从C中生成的DLL中调用函数。我成功了但是我有一个更“一般”的问题。我们来举个例子吧。我的C代码中有四个函数:

  • goNorth(){和++;}
  • goSouth(){y--;}
  • goWest(){x--;}
  • goEast(){x ++;}

易于理解,只需x和y坐标,每个功能都有所动作。我的问题是:如果我制作了这个代码的dll,是否有一种简单的方法(并且干净)来分享所有函数的x和y?

朱利安

答案

是的。在“实现”文件中定义变量,并在头文件中将其声明为“extern”:

实施文件:

// mylib.c

#include "mylib.h"

int x;
int y;

void goNorth() { ... }
void goSouth() { ... }

头文件:

// mylib.h

extern int x;
extern int y;

void goNorth();
void goSouth();

以上是关于在C中的DLL中的许多函数之间共享变量的主要内容,如果未能解决你的问题,请参考以下文章

怎样在C#中调用DLL中的函数,最好有代码和详细说明

C 中的共享内存代码片段

c++DLL编程详解

DLL 中 C 样式函数中的静态变量

是共享库/dll中的全局变量,跨进程共享

如何在导航抽屉活动模板中的片段之间传递字符串变量