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

标签 c++ dll struct

我有一个动态加载的 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/

相关文章:

c++ - 为什么在获取系统时间时使用 `atomic_signal_fence`

c++ - 编译 C++ 类时出现问题

arrays - 为什么不能超过 *[]Struct?

c++ - Gstreamer Textoverlay 未更新

windows - Delphi TForm OnCreate 被多次调用

c++ - COM - 实现 DllGetClassObject

c++ - 并排 : 3rd Party Dll refers to two versions of MSVCR80. DLL

c - 函数 fscanf 忽略 .txt 文件中的空格分隔符

c - 带指针的嵌套结构

c++ - 如何在 fork 的帮助下并行搜索文件中的字符串? (GNU Linux/g++)