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 ++显式导入全局变量(函数隐含此变量)。我会尝试使用__declspec( dllimport ) int myint;
如果您想针对Windows进行编译,并且已经在linux下进行开发,那么我将使用mingw从linux进行交叉编译,我认为这要容易得多。