遇到的问题:ActiveX控件出现的问题:调用函数Init_EBGM_LGBP()程序直接崩溃
程序中的调用方式:
SCFACERECOGEBGMLGBPHANDEL m_pFaceRecogEbgmLgbp;
m_pFaceRecogEbgmLgbp = gCreateSCFaceRecogEbgmLgbp();
m_pFaceRecogEbgmLgbp->Init_EBGM_LGBP();(运行到这里崩溃)
问题分析:
这些函数是SCFaceRecogEbgmLgbp.dll里的,跟人脸识别相关,Init_EBGM_LGBP()中需要进行一系列的初始化工作。查看源代码发现,它需要读取外部文件,也就是在其目录下的Data文件(包Data\FR\GaborMask.dat和Data\FR\GraphTempl.dat)。
我起初猜测可能跟这两个文件有关,于是做了如下试验:
试验:将原来演示程序(以前的演示程序里也是按照上面方式调用的,没出现问题。)目录下的Data文件重命名,再调试演示程序发现也是在Init_EBGM_LGBP()这里崩溃。
这个试验虽然不能确定跟这两个文件的目录相关,但应该是这个dll库的调用上出现了问题。所以,我想知道这个dll调用有没有什么要注意的地方。(注:在原来的演示程序中,Data文件是放在程序的目录下面,跟dll放在同一个目录,当前做的ActiveX控件程序,也是放在.ocx的目录下,跟dll一起)
解决方法:将TSTCON32.exe直接拷到.ocx的目录下,再启动该TSTCON32.exe测试.ocx