首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >段冲突写入DLL中的变量(Lcc 32)

段冲突写入DLL中的变量(Lcc 32)
EN

Stack Overflow用户
提问于 2016-05-28 16:12:00
回答 1查看 100关注 0票数 0

我已经构建了一个包含一些函数和全局变量的DLL。然后,我使用buildlib为其创建了一个导入库。

.exp文件是:

代码语言:javascript
复制
CSC_FFSW.dll
_CSC_FFSW_B                _CSC_FFSW_B        data
_CSC_FFSW_DWork            _CSC_FFSW_DWork    data
_CSC_FFSW_M                _CSC_FFSW_M        data
_CSC_FFSW_U                _CSC_FFSW_U        data
_CSC_FFSW_Y                _CSC_FFSW_Y        data
_CSC_FFSW_initialize       _CSC_FFSW_initialize
_CSC_FFSW_step0            _CSC_FFSW_step0
_CSC_FFSW_step1            _CSC_FFSW_step1

当我从一个程序导入DLL时,我可以读取全局变量(例如CSC_FFSW_U),但是当我试图编写它们时,我会得到一个分段冲突异常。

我没有使用导入库,而是尝试使用以下方法从DLL手动导入符号:

代码语言:javascript
复制
dllHandle = LoadLibrary("CSC_FFSW.dll");
myType* pCSC_FFSW_U = (myType*)GetProcAddress(dllHandle, "_CSC_FFSW_U");
...
etc.

使用这种方法,我可以很好地写入变量。然而,这种方法并不是很好,因为它需要更多的手工,容易出错的工作。

是否可以对由buildlib创建的导入库中的变量进行读写访问?我应该如何在.exp文件中指定这一点?

非常感谢,

米格尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-31 08:58:10

这个问题是由于变量声明中缺少__declspec(dllimport)和__declspec(dllexport)造成的。

有关更多详细信息,请参阅https://groups.google.com/forum/#!topic/comp.compilers.lcc/FrIyE0HMI04

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37501207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档