我在 dll 库中有这个示例 C++ 类
class Rectangle {
public:
int width, height;
void set_values (int,int);
int area (void);
} rect;
并且我已经用 .def 文件导出了所有内容 导入 dll 时我可以访问这两个函数 (set_values(int,int) 和 area(void)) 但不是公共(public)变量(宽度和高度)
我如何访问这些变量
最佳答案
使用 dllexport 将函数导出到 dll 中:
extern "C" __declspec(dllexport) bool void set_values (int,int);
也可以使用dumpbin生成定义文件
dumpbin /EXPORTS tryDLL.dll > tryDLL.def
然后使用 lib.exe 构建将与您的 dll 文件一起使用的 .lib 文件:
lib /def:try.def /out:trydll.lib
正确导出后,您可以将 DLL 文件复制到您的应用程序文件夹中,并将该目录和 lib 文件(或使用 #pragma)包含到您的项目中。您导出的类和函数定义应在头文件中声明,该文件仍需要包含在您的项目中。可以放心,您的成员函数可以像在任何其他普通程序中一样被调用。您可以访问在 dll 声明中声明的静态成员变量和常量。
关于c++ - 如何从 dll 导入公共(public)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49253704/