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

问题描述 投票:0回答:1

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 ;

应用程序崩溃。

c visual-c++ dll dllimport dllexport
1个回答
0
投票

如果我记得很好,则需要使用c ++显式导入全局变量(函数隐含此变量)。我会尝试使用__declspec( dllimport ) int myint;

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

© www.soinside.com 2019 - 2024. All rights reserved.