#include <iostream>
#include <windows.h>
#include "opencv2\opencv.hpp"
using namespace std;
typedef double (*ptr_DLL_Add)(double,double);
typedef cv::Mat (*ptr_DLL_threshold)(cv::Mat);
typedef void (*ptr_DLL_showPic)(cv::Mat src);
typedef void (*test)(uchar* p, int x, int y);
HINSTANCE hinstDLL;
int main()
{
ptr_DLL_Add add_(0);
ptr_DLL_threshold thre(0);
ptr_DLL_showPic show(0);
hinstDLL = LoadLibrary("dll_pack.dll");
// if(hinstDLL != 0)
// {
// add_ = (ptr_DLL_Add)GetProcAddress(hinstDLL, "DLL_Add");
// thre = (ptr_DLL_threshold)GetProcAddress(hinstDLL, "DLL_threshold");
// show = (ptr_DLL_showPic)GetProcAddress(hinstDLL, "DLL_showPic");
//
// cout<<add_(3.4,0.2)<<endl;
//
// show(cv::imread("20100812133.jpg", 0 ));
//
// cv::imshow("aaa",thre(cv::imread("20100812133.jpg", 0 )));
// cv::waitKey();
//
// FreeLibrary(hinstDLL);
// }
test tt(0);
tt = (test)GetProcAddress(hinstDLL, "test");
cv::Mat asd=cv::imread("20100812133.jpg", 0 );
tt(asd.data,asd.cols,asd.rows);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8d2luZG93cy5oPgojaW5jbHVkZSAib3BlbmN2MlxvcGVuY3YuaHBwIgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgZG91YmxlICgqcHRyX0RMTF9BZGQpKGRvdWJsZSxkb3VibGUpOwp0eXBlZGVmIGN2OjpNYXQgKCpwdHJfRExMX3RocmVzaG9sZCkoY3Y6Ok1hdCk7CnR5cGVkZWYgdm9pZCAoKnB0cl9ETExfc2hvd1BpYykoY3Y6Ok1hdCBzcmMpOwoKdHlwZWRlZiB2b2lkICgqdGVzdCkodWNoYXIqIHAsIGludCB4LCBpbnQgeSk7CgpISU5TVEFOQ0UgaGluc3RETEw7CgppbnQgbWFpbigpCnsKICAgIHB0cl9ETExfQWRkIGFkZF8oMCk7CiAgICBwdHJfRExMX3RocmVzaG9sZCB0aHJlKDApOwogICAgcHRyX0RMTF9zaG93UGljIHNob3coMCk7CgogICAgaGluc3RETEwgPSBMb2FkTGlicmFyeSgiZGxsX3BhY2suZGxsIik7CgovLyAgICBpZihoaW5zdERMTCAhPSAwKQovLyAgICB7Ci8vICAgICAgICBhZGRfID0gKHB0cl9ETExfQWRkKUdldFByb2NBZGRyZXNzKGhpbnN0RExMLCAiRExMX0FkZCIpOwovLyAgICAgICAgdGhyZSA9IChwdHJfRExMX3RocmVzaG9sZClHZXRQcm9jQWRkcmVzcyhoaW5zdERMTCwgIkRMTF90aHJlc2hvbGQiKTsKLy8gICAgICAgIHNob3cgPSAocHRyX0RMTF9zaG93UGljKUdldFByb2NBZGRyZXNzKGhpbnN0RExMLCAiRExMX3Nob3dQaWMiKTsKLy8KLy8gICAgICAgIGNvdXQ8PGFkZF8oMy40LDAuMik8PGVuZGw7Ci8vCi8vICAgICAgICBzaG93KGN2OjppbXJlYWQoIjIwMTAwODEyMTMzLmpwZyIsIDAgKSk7Ci8vCi8vICAgICAgICBjdjo6aW1zaG93KCJhYWEiLHRocmUoY3Y6OmltcmVhZCgiMjAxMDA4MTIxMzMuanBnIiwgMCApKSk7Ci8vICAgICAgICBjdjo6d2FpdEtleSgpOwovLwovLyAgICAgICAgRnJlZUxpYnJhcnkoaGluc3RETEwpOwovLyAgICB9CgoKICAgIHRlc3QgdHQoMCk7CiAgICB0dCA9ICh0ZXN0KUdldFByb2NBZGRyZXNzKGhpbnN0RExMLCAidGVzdCIpOwoKICAgIGN2OjpNYXQgYXNkPWN2OjppbXJlYWQoIjIwMTAwODEyMTMzLmpwZyIsIDAgKTsKCiAgICB0dChhc2QuZGF0YSxhc2QuY29scyxhc2Qucm93cyk7CgogICAgcmV0dXJuIDA7Cn0K