在编译dll时一直没有什么问题,在同一个工程直接测试也没有什么问题,但是等到用我的DLL时确出现了一堆的问题.
问题 1
导出派生类,用dll 出现Link2019 无法解析的外部符号 基类的析构函数在派生类用到, 解决方法 1 基类也导出,解决方发2 不定义基类的析构函数. 虽然问题解决了, 但是到现在我也不知道为什么 .
问题2
void SmsXmlParserTest::TestGetDcpCplName10()
{
int result = XMLPARSER_initValue;
vector<string> cplFileName;
result = xmlParse->Inite();
string assetMapFilePath = "E://xml//SMS_XMLPaser_1.1_Test//XMLPaserUnitTest//" ;
result = xmlParse->XmlInite(assetMapFilePath);
string pkl="";
string data = "";
result = xmlParse->GetDcpName(pkl,data);
CPPUNIT_ASSERT_EQUAL(result,XMLPARSER_SUCCESS);
}
xmlParse是从dll导出的类,pkl,data都得到了正确的值,但是在该函数结束时string自动析构时确出现了问题.
问题是 Expression: _CrtIsValidHeapPointer(pUserData) ;