c++调用dll导出函数样例

/ 0评 / 0
#include <iostream>
#include <windef.h>
#include <afxres.h>
#include <tchar.h>

#define OCR_DATA "ocr_data"
#define CFG "ScanBcr.cfg"
#define IMG "C:\\Users\\qtfreet\\Desktop\\02.jpg"

using namespace std;

typedef int(*IdentityDllMain)(char *acOcrDataPath, char *acConfigPath, char *inFileName, char *outresult,
                              int nOutSize); //定义要调用的导出函数形式

int main() {
    HINSTANCE dll = LoadLibrary(_T("IdentityDll.dll")); //调用dll,这里使用的是相对路径,记得将dll放在调试时生成的exe目录下
    if (NULL != dll) {
        IdentityDllMain id = (IdentityDllMain) GetProcAddress(dll, "IdentityDllMain"); //设置要调用的方法
        if (NULL != id) {
            string ocr_data = OCR_DATA;
            string img = IMG;
            string cfg = CFG;
            char result[2048];
            memset(result, 0, 2048);
            id((char *) ocr_data.c_str(), (char *) cfg.c_str(), (char *) img.c_str(), result, 1024); //调用方法
            cout << result << endl;
            FreeLibrary(dll);
        }
    }
    return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注