Replies: 1 comment
-
根据提供的信息和相关讨论,您遇到的问题可能有以下几个原因和解决建议:
a) 临时解决方案(参考讨论中的方案): // 修改paddleocr.cpp中的代码,禁用检测步骤
std::vector<OCRPredictResult> PPOCR::ocr(cv::Mat img, bool det, bool rec, bool cls) {
std::vector<OCRPredictResult> ocr_result;
ocr_result.resize(1);
// ... 设置边界框
} 但这种方案有限制:只能处理单行文字,多行文字会报错。 b) 更好的解决方案:
// 在DLL入口点初始化
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
// 初始化Paddle相关配置
break;
case DLL_PROCESS_DETACH:
// 清理资源
break;
}
return TRUE;
}
相关讨论链接:#13823 如果以上方案都不能解决问题,建议尝试将PaddleOCR的推理部分直接集成到exe中,而不是通过DLL调用,这样可以避免DLL调用带来的复杂性。 Response generated by feifei-bot | claude-3-5-sonnet-latest |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
在C++中exe可以运行,但是dll不行,C#中调用就上面的情况
在C++中的接口定义和实现
`
__declspec(dllimport) char* Detect(char* imagefile);
__declspec(dllexport) void FreeMemory(char* ptr);
char* Detect(char* imagefile)
{
if (FLAGS_benchmark) {
ocr.reset_timer();
}
}
void FreeMemory(char* ptr)
{
delete[] ptr;
}
`
Beta Was this translation helpful? Give feedback.
All reactions