我有一个动态加载的dll,它上面有函数调用,我想传递一个结构。它是动态加载的,因为我不知道将使用哪个版本的dll,直到运行时。
首先,我应该通过价值还是参考?
其次,我在哪里声明这个结构,以便它可供dll及其调用者使用(我认为它必须同时可用)。
如果我在接受它作为参数的同一个dll中声明它,那么dll的任何潜在用户都必须静态链接到dll,这样它才能访问struct声明,这就是我最初想要的避免。
答案 0 :(得分:2)
首先,我应该通过价值还是参考?
这取决于,例如, this question
其次,我在哪里声明这个结构,以便它可用于dll及其调用者
您在两个都使用的头文件中声明它。结构在编译时声明,不需要链接任何库。