C++ 从 DLL 创建结构

Posted

技术标签:

【中文标题】C++ 从 DLL 创建结构【英文标题】:C++ creating a struct from DLL 【发布时间】:2018-01-11 00:01:12 【问题描述】:

我正在使用包含结构的第 3 方 DLL。相应的头文件包含这样的结构定义:

struct MY_STRUCT 
    public:
        MY_STRUCT();

        [members]

当我尝试创建这种类型的变量时:

MY_STRUCT myStruct;

...我收到此错误:未定义对MY_STRUCT::MY_STRUCT()的引用

我已经将 DLL 链接到我的项目,因为我之前使用过它的一些(动态加载的)函数。

【问题讨论】:

你熟悉__declspec(dllexport)吗? 是的,但这是第 3 方 DLL,因此第 3 方负责导出结构(如果这是您的评论),我认为它已正确导出,因为它被用作参数类型在它的一个导出函数中。 在这种情况下,我会在 DLL 上使用 dumpbin /exports 来查看您是否可以获得有关它如何导出的提示。 您是否一直编译为 C++,或者您之前(成功)编译为 C? 始终为 C++ [填充最小评论长度的文本]。 【参考方案1】:

所以我联系了 DLL 提供商,他们的回答是:“DLL 不会导出任何结构,您必须自己实现它们”。真是太棒了。

【讨论】:

以上是关于C++ 从 DLL 创建结构的主要内容,如果未能解决你的问题,请参考以下文章

如何将结构从 C++ 应用程序传递到 C++ Win32 DLL?

将 C++ 结构指针从 Perl 传递给任意 dll 函数调用

创建要在 C# 中编组的 C++ Dll 的最佳实践 [关闭]

C++ typedef struct 等效于 C#

将复杂的结构(带有结构的内部数组)从 C# 传递到 C++

C++ 到 C# 回调结构编组