我有一个动态加载的 dll,上面有调用的函数,我想向它传递一个结构。它是动态加载的,因为我不知道在运行时我将使用哪个版本的 dll。
首先,我应该按值还是引用传递?
其次,我在哪里声明这个结构,以便它对 dll 和它的调用者都可用(我假设它必须对两者都可用)。
如果我在接受它作为参数的同一个 dll 中声明它,那么毫无疑问,该 dll 的任何潜在用户都必须静态链接到该 dll,以便它可以访问结构声明,这就是我最初想要的避免。
最佳答案
Firstly, should i pass by value or reference?
这取决于,例如this question .
Secondly, where do I declare this struct so it is available to both the dll and its caller
您在两者都使用的头文件中声明它。该结构在编译时声明,为此不需要链接任何库。
关于c++ - 将结构传递给动态加载的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881089/