我有一个.dll头,它声明了一个类 .
在类声明之后,它实例化该类的静态对象 .
.dll导出的函数与静态对象的接口 .
当第一次调用其中一个导出函数返回时,我得到一个莫名其妙的段错误 . 所以我的问题是: Is it OK to declare a static object in a .dll header like this:
class Foo{
public:
void bar();
};
static Foo foo;
__declspec( dllexport ) void func() { foo.bar(); }
1 回答
对于您正在尝试的内容,您需要从头文件中删除该类,它根本不属于那里 .
尝试更像这样的东西:
MyDll.h(与想要使用你的DLL的项目共享):
MyDll.cpp :(仅作为DLL项目的一部分编译):