KuoWeichung
一般會員
發表:2 回覆:4 積分:1 註冊:2005-05-20
發送簡訊給我
|
以下是我的整個執行過程
辨識過程全部完成
但是在加入
PP_RETURNTYPEList *ppReturnList = new PP_RETURNTYPEList;
這行指令後
就出現以下的LinkError
[Link Error]Unresolved external 'CPtrList:~CPtrList()' referenced from D:\OCR\WISEOCR\FRMDLLMAIN.OBJ
[Link Error]Unresolved external 'CObject::GetRuntimeClass() const' referenced from D:\OCR\WISEOCR\FRMDLLMAIN.OBJ
[Link Error]Unresolved external 'CPtrList::CPtrList(int) referenced from D:\OCR\WISEOCR\FRMDLLMAIN.OBJ
[Link Error]Unresolved external 'CPtrList::GetRuntimeClass() const' referenced from D:\OCR\WISEOCR\FRMDLLMAIN.OBJ 我的include檔
有加入#include
以及#include
Advanced Compiler->Source有選MFC Compatibility
Linker->Linking選Use dynamic RTL
請問我是少Link了什麼lib還是少做了什麼設定嗎 以下為source code
bool pbOk;
int piReturn; //讀取影像檔(支援多一檔多頁的檔案格式)
(FARPROC&)PPOCR_ConvertDIBFromImageFileEx=GetProcAddress(hInst, "PPOCR_ConvertDIBFromImageFileEx");
//傳入影像及設定的參數進行辨識,返回後的 PP_RETURNTYPE 結構為辨識結果
(FARPROC&)PPOCR_DARecognize=GetProcAddress(hInst, "PPOCR_DARecognize");
//將辨識結果儲存成不同的文件格式(支援多頁存檔)
(FARPROC&)PPOCR_SaveFile=GetProcAddress(hInst, "PPOCR_SaveFile");
//釋放辨識結果所佔用的系統資源
(FARPROC&)PPOCR_DARecognizeFree=GetProcAddress(hInst,"PPOCR_DARecognizeFree");
//釋放 DIB 影像使用的記憶體
(FARPROC&)PPOCR_DIBFree=GetProcAddress(hInst,"PPOCR_DIBFree");
//釋放由 PPOCR_ConvertDIBFromImageFileEx 得到的 DIB handle array 記憶體
(FARPROC&)PPOCR_DestroyDIBs=GetProcAddress(hInst,"PPOCR_DestroyDIBs"); //讀取圖形檔後將其轉換為 DIB 格式
m_iTotalPage=0;
PPOCR_DestroyDIBs(m_iTotalPage,m_lphDibList);
m_lphDibList=NULL;
m_iTotalPage=1;
piReturn=PPOCR_ConvertDIBFromImageFileEx(edPictureFile->Text.Trim().c_str(),m_iTotalPage,m_lphDibList);
if(piReturn==PPDIB_SUCCESS)
{
ShowMessage("轉換DIB成功");
}
else
{
rerurn;
} PP_INPUTINFO *m_ppInputInfo=new PP_INPUTINFO;
PP_RETURNTYPE *m_ppReturnType=new PP_RETURNTYPE; m_ppInputInfo->hDib=m_lphDibList[0];
m_ppInputInfo->ppMode.sMode=PP_MODE_MIX; //語言:混合
m_ppInputInfo->ppMode.sImageType=PP_DOC_UNKNOWN; //影像文件類別:其他種類
m_ppInputInfo->ppMode.sFileType=PP_CHAR_PRINTED; //影像文件類型:印刷字體
m_ppInputInfo->ppCharSet.sRecogCharSet=PP_CHARSET_BIG5_13051; //要進行辨識的字元種類:BIG5 擴展字庫
m_ppInputInfo->ppCharSet.sOutCharSet=PP_CODE_BIG5; //輸出的字元種類:輸出字庫取BIG5字庫
m_ppInputInfo->ppAutoOption.bAuto=TRUE; //是否進行自動操作
m_ppInputInfo->ppAutoOption.sAuto=(short)PP_AUTO_ALL; //全部自動選項開啟
m_ppInputInfo->ppAnalysis.sReconCharFont=PP_FONT_MIXED; //進行分析的文件字體:綜合字體類型
m_ppInputInfo->ppAnalysis.sFlowOrient=PP_ORIENT_AUTO; //文件排版方式:自動
m_ppInputInfo->ppAnalysis.sDirection=PP_DIR_AUTO; //文件書寫方式:自動確定書寫方式(由左至右,由右至左)
m_ppInputInfo->ppProcessBar.hProgressBar=NULL;
m_ppInputInfo->ppProcessBar.ProgressCallBack=NULL; //傳入影像及設定的參數進行辨識,返回後的 PP_RETURNTYPE 結構為辨識結果
piReturn=PPOCR_DARecognize(m_ppInputInfo,m_ppReturnType); if(piReturn!=PPREG_SUCCESS)
{
ShowMessage("辨識失敗,錯誤碼" IntToStr(piReturn)); //釋放 DIB 影像使用的記憶體
PPOCR_DestroyDIBs(m_iTotalPage,m_lphDibList);
return;
} PP_RETURNTYPEList *ppReturnList = new PP_RETURNTYPEList;
// ppReturnList->AddTail(m_ppReturnType);
// ppReturnList[0]=m_lphDibList;
//將辨識結果儲存成不同的文件格式(支援多頁存檔)
// PPOCR_SaveFile(PP_RETURNTYPEList *ppReturnList,LPCTSTR szFileName,int iFileType,void *pExtData); delete ppReturnList; //釋放辨識結果所佔用的系統資源
PPOCR_DARecognizeFree(m_ppReturnType); //釋放 DIB 影像使用的記憶體
PPOCR_DestroyDIBs(m_iTotalPage,m_lphDibList); delete m_ppInputInfo;
delete m_ppReturnType;
|