我的MFC程序要调用一个自己写的静态库,发现在debug版本的程序关闭后在任务管理器里的进程还没有退出。
静态库很简单,就两个文件:
a.h#pragma once#include <afxwin.h>namespace HM2p5
{
class MeshParameter
{
public: MeshParameter()
{
}; virtual ~MeshParameter(){};
MeshParameter& operator = (const MeshParameter& p); };
}a.cppnamespace HM2p5
{
MeshParameter& MeshParameter::operator = (const MeshParameter& p)
{
return *this;
}
}MFC调用如下: MeshParameter MeshParameterer1;
MeshParameter MeshParameterer2;
MeshParameterer2 = MeshParameterer1;(1)静态库和MFC程序都选择了Shared MFC dll.
(2)如果a.h不加#include <afxwin.h>,那么没有错。我其实要用到COLORREF,所以包含了<afxwin.h>
(3)如果调用时没有MeshParameterer2 = MeshParameterer1,那么也没有错。
(4)release版本没这个问题。
请问我现在应该怎么改我的静态库使得没有这个问题。
静态库很简单,就两个文件:
a.h#pragma once#include <afxwin.h>namespace HM2p5
{
class MeshParameter
{
public: MeshParameter()
{
}; virtual ~MeshParameter(){};
MeshParameter& operator = (const MeshParameter& p); };
}a.cppnamespace HM2p5
{
MeshParameter& MeshParameter::operator = (const MeshParameter& p)
{
return *this;
}
}MFC调用如下: MeshParameter MeshParameterer1;
MeshParameter MeshParameterer2;
MeshParameterer2 = MeshParameterer1;(1)静态库和MFC程序都选择了Shared MFC dll.
(2)如果a.h不加#include <afxwin.h>,那么没有错。我其实要用到COLORREF,所以包含了<afxwin.h>
(3)如果调用时没有MeshParameterer2 = MeshParameterer1,那么也没有错。
(4)release版本没这个问题。
请问我现在应该怎么改我的静态库使得没有这个问题。
内追加断点,在Debug的时候调试看看能否执行得到?应该是你的程序因为某个原因未能成功销毁。
在销毁程序的位置加上断点,比如OnDestroy DestroyWindow 之类的位置。
最好在析构函数处也加上断点看看。或者把主程序如何退出程序的代码贴出来让大家看看。