我可以从 DLL 导入全局变量吗?我可以使用 DEF 文件执行此操作吗?
Can I import a global variable from a DLL ? Can I do this with a DEF file?
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 已创建,我可以 link 使用它,我的可执行文件成功调用了 myfunc()。
但是我不知道如何告诉 linker myint 是一个变量而不是一个函数。所以当我尝试
myint = 1 ;
应用程序崩溃。
如果我没记错的话,在 C++ 中你需要显式导入全局变量(它是隐含的函数)。我会尝试 __declspec( dllimport ) int myint;
如果你想为 windows 编译并且你已经在 linux 下使用 GCC 进行开发,我会使用 mingw 从 linux 交叉编译,它更容易我的意见。
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 已创建,我可以 link 使用它,我的可执行文件成功调用了 myfunc()。 但是我不知道如何告诉 linker myint 是一个变量而不是一个函数。所以当我尝试
myint = 1 ;
应用程序崩溃。
如果我没记错的话,在 C++ 中你需要显式导入全局变量(它是隐含的函数)。我会尝试 __declspec( dllimport ) int myint;
如果你想为 windows 编译并且你已经在 linux 下使用 GCC 进行开发,我会使用 mingw 从 linux 交叉编译,它更容易我的意见。