halcon在VC++中,并生成dll文件,供MFC的EXE程序调用,dll中使用halcon函数出现报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了halcon在VC++中,并生成dll文件,供MFC的EXE程序调用,dll中使用halcon函数出现报错相关的知识,希望对你有一定的参考价值。

halcon在VC++中,并生成dll文件,供MFC的EXE程序调用,“Invalid license file syntax in operator open_framegrabber”,error#2037.但是我把这个open_framegrabber函数在win32控制台程序中使用没问题。求大神讲解

把你的代码贴出来 就这样写没法判断错误追问

我就在工程里面加了halcon的include文件夹和halconcpp.lib

追答

你的错误提示 :无效的许可证文件的语法操作open_framegrabber 你把完整的代码发出来看看

参考技术A 我遇到过类似的问题,是用C#调用halcon的任一个函数都会报错,也有报你说的这种错误,最后没办法还是重装系统才解决

如何在vc++中调用halcon的hdev档案

参考技术A vc使用halcon
使用hdevelop导出halcon程序的c++代码之后,比如

[cpp] view plaincopyread_image (image, 'C:/Documents and Settings/Administrator/桌面/vision/IMG_20121015_091436.bmp')
rgb1_to_gray (image, GrayImage)
dev_set_color('blue')
*bin_threshold (GrayImage, Region)
threshold(GrayImage,Region,100,255)
area_center (Region, Area, Row, Column)
生成c++代码

[cpp] view plaincopy///////////////////////////////////////////////////////////////////////////////
// File generated by HDevelop for HALCON/C++ Version 10.0
///////////////////////////////////////////////////////////////////////////////

#include "HalconCpp.h"

using namespace Halcon;

#ifndef NO_EXPORT_MAIN
// Main procedure
void action()

using namespace Halcon;

// Local iconic variables
Hobject image, GrayImage, Region;

// Local control variables
HTuple Area, Row, Column;

read_image(&image, "C:/Documents and Settings/Administrator/桌面/vision/IMG_20121015_091436.bmp");
rgb1_to_gray(image, &GrayImage);
if (HDevWindowStack::IsOpen())
set_color(HDevWindowStack::GetActive(),"blue");
bin_threshold(GrayImage, &Region);
area_center(Region, &Area, &Row, &Column);



#ifndef NO_EXPORT_APP_MAIN
int main(int argc, char *argv[])

using namespace Halcon;
// Default settings used in HDevelop (can be omitted)
set_system("do_low_error","false");
action();
return 0;

#endif

#endif

新建一个对话框mfc程序(vc2008),添加一个按钮button1,加入如下代码(我将action函数稍微改了一下)
当然先要#include "HalconCpp.h"

[cpp] view plaincopy// Main procedure
double action( char * p)

using namespace Halcon;
// Local iconic variables
Hobject image, GrayImage, Region;

// Local control variables
HTuple Area, Row, Column;

read_image(&image, p);
rgb1_to_gray(image, &GrayImage);
if (HDevWindowStack::IsOpen())
set_color(HDevWindowStack::GetActive(),"blue");
//bin_threshold(GrayImage, &Region);
threshold(GrayImage, &Region,50,255);
area_center(Region, &Area, &Row, &Column);
double d=Area[0];
return d;



void CabcDlg::OnBnClickedButton1()

// TODO: 在此添加控件通知处理程序代码
double d=action("C:/Documents and Settings/Administrator/桌面/vision/IMG_20121015_091436.bmp");
CString str;
str.Format("%f",d);
AfxMessageBox(str);


编译程序之前需要先设置一下include和链接环境,对于vc2008
工具/选项/项目解决方案/vc++目录/包含文件/ 添加
C:\Program Files\MVTec\HALCON-10.0\include
C:\Program Files\MVTec\HALCON-10.0\include\cpp
工具/选项/项目解决方案/vc++目录/库文件/ 添加
C:\Program Files\MVTec\HALCON-10.0\lib\x86sse2-win32

然后执行即可。本回答被提问者和网友采纳

以上是关于halcon在VC++中,并生成dll文件,供MFC的EXE程序调用,dll中使用halcon函数出现报错的主要内容,如果未能解决你的问题,请参考以下文章

Win7的64位的halcon10.0的dll损坏,求助

Unity与 DLL文件 ☀️| 怎样使用VC++生成一个DLL文件并调用!(包括 在VS 中调用 和 在Unity中调用)

Halcon中外部函数在VC中是怎么调用的

如何使用 ms vc++ 编译器在 netbeans 中构建 dll 文件?

用vc生成可被python调用的dll文件

怎样将halcon代码转化为DLL文件