我可以从DLL导入全局变量吗?我可以使用DEF文件吗?

时间:2020-04-16 11:00:42

标签: c visual-c++ dll dllimport dllexport

gcc对此没有问题,但是我很难用link.exe(visualc)来实现相同的目的

在dll.c中,我定义

int myint = 0 ;
int myfunc ( .... ) {  ...  } ;

在dll.h中

extern int myint ;
int myfunc ( .... ) ;

在dll.def中

LIBRARY mydll
EXPORTS
    myint
    myfunc

一切正常,创建了dll,我可以与它链接,我的可执行文件成功调用myfunc()。 但是我不知道如何告诉链接器myint是变量而不是函数。所以当我尝试

myint = 1 ;

应用程序崩溃。

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,使用c ++时,您需要显式导入全局变量(它对函数是隐式的)。我会尝试使用__declspec( dllimport ) int myint;

如果您想为Windows编译并且已经在Linux上使用GCC进行开发,那么我将使用mingw从linux进行交叉编译,我认为这要容易得多。