STL 与 DLL 高手请进 !!!

coolstar coolstar 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

DLL文件MapDll.Dll代码

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}

class __declspec(dllexport) CMapTest
{
typedef map <string, int> ContextList;
public:
void DelData(int Data);
void AddData(string Index,int Data);
CMapTest(){}
virtual ~CMapTest(){}

ContextList m_ContextList;
};

void CMapTest::AddData(string Index,int Data)
{
m_ContextList[Index] = Data;
}

void CMapTest::DelData(int Data)
{
ContextList::iterator mapIter = m_ContextList.begin();
while(mapIter != m_ContextList.end())
{
if((*mapIter).second == Data)
{
m_ContextList.erase(mapIter);
break;
}
mapIter++;
}
}



exe 文件Test.exe代码

int main(int argc, char* argv[])
{
CMapTest m_MapTest;
m_MapTest.AddData("111111",18);
m_MapTest.DelData(18);
return 0;
}


问题:运行Test.exe 出错


Debug Assertion Failed!
Program: E:\eeee\Debug\eeee.exe
File:dbgheap.c
Line:1044

Expresssion:_CrtIsValidHeapPointer(pUserData)

For information on how you programe can cause an assertion
failure, see the Visual C++ documentation on asserts
谁能解释这个问题?
...全文
评论 11
收藏 已收藏
分享
返回顶部
coolstar
工具平台和程序库 24,850 成员 27,330 内容