#pragma once #include "PageMatcher.h" #include "ResultReader.h" #include // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 IDENTIFIER_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // IDENTIFIER_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的 // 符号视为是被导出的。 #ifdef IDENTIFIER_EXPORTS #define IDENTIFIER_API __declspec(dllexport) #else #define IDENTIFIER_API __declspec(dllimport) #endif namespace identify{ // 此类是从 Identifier.dll 导出的 class IDENTIFIER_API CIdentifier { public: CIdentifier(void); ~CIdentifier(void); private: bool m_isMuBanLoaded; CPageMatcher pm; CResultReader rr; std::string m_strQr; bool m_bUseQr; boost::shared_ptr m_schema; public: void SetUseQr(bool bUseQr, const std::string&strQr); int GetMubanPageCount(); void LoadMuban2(const boost::shared_ptr& schema); BOOL IsMubanLoaded(){ return m_isMuBanLoaded; } int Identify2(const IplImage* img, OMR_RESULT* out_result); int Identify3(const IplImage* img, int schema_index, const std::vector& muban, const std::vector& shijuan, OMR_RESULT* out_result); }; IDENTIFIER_API int PraseQRCode_Normal2(IplImage* img, std::string & resultString); }