在dll函数中调用CoInitializeEx(NULL,COINIT_MULTITHREADED),然后在应用程序中调用dll函数,结束程序的时候出错
int DVD_TEXT_OCR_API DvdTextOcr(TextImage handle, char* text)
{
CoInitializeEx(NULL, COINIT_MULTITHREADED);
.....
微软OCR
CoUninitialize();
}--->dll
将此函数封装在动态库中,应用程序开一个工作线程,工作线程调用dll中的该函数
工作线程运行的时候一切正常,没有内存泄露没有内存错误,也能识别出视频图片上的字, 但是工作线程正常退出之后,销毁应用程序的时候(不销毁不出现),发生内存错误
retval = HeapFree(_crtheap, 0, pBlock);
if (retval == 0)
{
errno = _get_errno_from_oserr(GetLastError());
}
这里出现断点
当把CoInitializeEx(NULL, COINIT_MULTITHREADED)、CoUninitialize()从dll中去掉之后,在主进程中调用CoInitializeEx,但是工作线程不能识别文字,而工作线程正常退出之后,不会发生上面的错误,请问为什么?
急啊,各位帮帮忙