近段時間開始接觸halcon,但是在VS2015里面使用,無論是配置還是生產EXE文件,都不如意。
加上網上的教程很多,經過多次測試,其實有很多地方無需修改,如果修改的太多也失去了直接添加封裝的意義。
我的環境為 WIN10 64位 halcon12 用64位到處C++ 文件,VS2015免費共享版。
(如果要生成32位的話,需要halcon12 用32位程序 導出C++,並且需要把VC切換為X86平台,
庫目錄改為 C:\Program Files\MVTec\HALCON-12.0\lib\x86sse2-win32;
配置的第五部,項目屬性 -- 配置屬性 -- 鏈接器 -- 輸入 -- 附加依賴項 -- 添加 halconcpp.lib,
這里的halconcpp.lib,需要改為C:\Program Files\MVTec\HALCON-12.0\lib\x86sse2-win32\halconcpp.lib
其它地方和64位相同。)
下面開始:
一、VS2015方面
1、先生成一個MFC對話框程序,步驟略。(我得工程名稱為:TMD視覺檢測)
VS配置:
2、先在配置管理器,把平台改為X64,因為修改這里的時候,下面的所有設置都會恢復默認。所有最好先設置這里。
3、項目屬性 -- 配置屬性 -- VC++目錄 -- 包含目錄 -- 添加 $(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
4、項目屬性 -- 配置屬性 -- VC++目錄 -- 庫目錄 -- 添加 $(HALCONROOT)\lib\$(HALCONARCH);
(圖同上)
5、項目屬性 -- 配置屬性 -- 鏈接器 -- 輸入 -- 附加依賴項 -- 添加 halconcpp.lib
配置完畢!
二、實際操作部分:
1、halcon導出C++文件,切記用64位導出,我導出的文件名為:VCDemo64.cpp
2、添加CPP到VS,在資源管理器中,源文件 -- 右鍵 -- 添加 -- 現有項 -- 找到上一部導出的halcon CPP文件
3、新建頭文件hh.h ,資源管理器 -- 頭文件 -- 添加 -- 新建項 -- 選擇頭文件 -- 命名為hh.h (隨便)
hh.h 添加內容:
#pragma once #ifndef MY_FILE_H_ #define MY_FILE_H_ void action(); #endif
4、修改對話框Dlg CPP文件,
添加頭文件及空間(如下圖):
# include "HalconCpp.h" # include "hh.h"
using namespace HalconCpp;
5、修改halcon CPP 文件 VCDemo64.cpp,
在最頂部添加頭文件:
#include "stdafx.h"
截止到此,重新生成解決方案,可編譯成功。
三、添加按鈕激活。
1、在VS 窗體對話框中 添加 按鈕
在按鈕事件代碼中,添加后如下:(此段代碼為halcon導出的CPP主函數段)
void CTMD視覺檢測Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知處理程序代碼 SetSystem("width", 512); SetSystem("height", 512); #if defined(_WIN32) SetSystem("use_window_thread", "true"); #elif defined(__linux__) XInitThreads(); #endif #ifndef __APPLE__ action(); #else ret = apple_main(argc, argv); #endif return; }
上面你復制過來的時候,return 會報警,刪掉即可。
重新生成解決方案,編譯成功,運行,點擊按鈕,如下圖:(產品就不顯示了)
未完待續。
