C++DLL导出类的问题
我在做一个dll项目,要导出好几个类,供几个程序使用,但是我发现好多问题,这是我导出的类:class_declspec(dllexport)ControlMnagerCl...
我在做一个dll项目,要导出好几个类,供几个程序使用,但是我发现好多问题,这是我导出的类:
class _declspec(dllexport) ControlMnagerClass
{
public:
ControlMnagerClass(){}
~ControlMnagerClass(){}
virtual int OnGet(){}
bool IsStatic = false;
LPWSTR Name = NULL;
private:
LPWSTR String1 = NULL;
};
然后在exe中引用:
class _declspec(dllimport) ControlMnagerClass
{
public:
ControlMnagerClass();
~ControlMnagerClass();
virtual int OnGet();
bool IsStatic = false;
LPWSTR Name = NULL;
};
问题是,只要我把exe中引用类的private下全部删掉,程序就会溢出,报错:
Debug Error!
Program: E:\Ö÷Êý¾Ý¿â\±à³Ì\·½°¸\Win32Project13\Debug\Win32Project13.exe
HEAP CORRUPTION DETECTED: after Normal block (#111) at 0x015CDAD8.
CRT detected that the application wrote to memory after end of heap buffer.
(Press Retry to debug the application)
如果把
private:
LPWSTR String1 = NULL;
也加到exe的引用类中就不会出故障,这到底是为什么,好像别人导出的类根本没有私有的,却不会出故障,他们不可能不用私有变量啊,而且我也不想用户知道我这个类的私有变量。
求助大神,这个问题怎么办 展开
class _declspec(dllexport) ControlMnagerClass
{
public:
ControlMnagerClass(){}
~ControlMnagerClass(){}
virtual int OnGet(){}
bool IsStatic = false;
LPWSTR Name = NULL;
private:
LPWSTR String1 = NULL;
};
然后在exe中引用:
class _declspec(dllimport) ControlMnagerClass
{
public:
ControlMnagerClass();
~ControlMnagerClass();
virtual int OnGet();
bool IsStatic = false;
LPWSTR Name = NULL;
};
问题是,只要我把exe中引用类的private下全部删掉,程序就会溢出,报错:
Debug Error!
Program: E:\Ö÷Êý¾Ý¿â\±à³Ì\·½°¸\Win32Project13\Debug\Win32Project13.exe
HEAP CORRUPTION DETECTED: after Normal block (#111) at 0x015CDAD8.
CRT detected that the application wrote to memory after end of heap buffer.
(Press Retry to debug the application)
如果把
private:
LPWSTR String1 = NULL;
也加到exe的引用类中就不会出故障,这到底是为什么,好像别人导出的类根本没有私有的,却不会出故障,他们不可能不用私有变量啊,而且我也不想用户知道我这个类的私有变量。
求助大神,这个问题怎么办 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询