我在一个托管DLL中使用pocoXML函数,该DLL由另一个托管C ++项目使用。托管DLL可以完美编译。但是,当调用使用poco函数的DLL函数时,我在debug_heap.cpp中得到了 Debug Assertion Fail (调试断言失败)(is_block_type_valid)。
//managed DLL code:
#include "Poco/Timestamp.h"
#include "Poco/DateTimeFormatter.h"
#include "Poco/DateTimeFormat.h"
class __declspec(dllexport) log
{
public:
static void Log(const char* source, const char* file, const char* function, const std::string& str = "");
}
void log::Debug(const char* file, const char* function, const std::string& str)
{
const Poco::Timestamp now;
const std::string time = Poco::DateTimeFormatter::format(now, Poco::DateTimeFormat::ISO8601_FRAC_FORMAT);
std::stringstream log;
log << "[" << time.c_str() << "; Debug]: " << methodname(file, function) << " - " << str;
std::string str = log.str();
fprintf(stdout, "%s\n", str.c_str());
}
//call from managed C++:
log::Debug(__FILE__, __FUNCTION__, "message");
我在做什么错了?
谢谢!
答案 0 :(得分:0)
似乎Poco Lib是为Windows SDK 8.1而不是10编译的。 重新编译正确的SDK集可以解决此问题。