将结构传递给动态加载的dll

时间:2012-01-16 14:02:28

标签: c++ dll struct

我有一个动态加载的dll,它上面有函数调用,我想传递一个结构。它是动态加载的,因为我不知道将使用哪个版本的dll,直到运行时。

首先,我应该通过价值还是参考?

其次,我在哪里声明这个结构,以便它可供dll及其调用者使用(我认为它必须同时可用)。

如果我在接受它作为参数的同一个dll中声明它,那么dll的任何潜在用户都必须静态链接到dll,这样它才能访问struct声明,这就是我最初想要的避免。

1 个答案:

答案 0 :(得分:2)

  

首先,我应该通过价值还是参考?

这取决于,例如, this question

  

其次,我在哪里声明这个结构,以便它可用于dll及其调用者

您在两个都使用的头文件中声明它。结构在编译时声明,不需要链接任何库。