我坚持修复传统的Visual C 6应用程序.在我放的C DLL源代码中
extern "C" _declspec(dllexport) char* MyNewVariable = 0;
这导致MyNewVariable在导出表中显示(很好地未修饰)(如dumpbin / exports blah.dll所示).但是,我无法弄清楚如何声明变量,以便我可以在C源文件中访问它.我尝试过各种各样的东西,包括
_declspec(dllimport) char* MyNewVariable;
未解析的外部符号“__declspec(dllimport)char * MyNewVariable”(__ imp_?MyNewVariable @@ 3PADA)
extern "C" _declspec(dllimport) char* MyNewVariable;
正如Tony所建议的(以及我之前尝试过的)会产生不同的预期装饰,但仍然没有将其删除:
未解析的外部符号__imp__MyNewVariable
如何编写声明,以便可以从C应用程序访问C DLL变量?
答案
由botismarius和其他人确认(非常感谢所有),我需要链接DLL的.lib.为了防止名称被破坏,我需要声明它(在C源代码中)没有装饰器,这意味着我需要使用.lib文件.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。