近段時間開始接觸halcon,可是在VS2015裏面使用,不管是配置仍是生產EXE文件,都不如意。linux
加上網上的教程不少,通過屢次測試,其實有不少地方無需修改,若是修改的太多也失去了直接添加封裝的意義。app
個人環境爲 WIN10 64位 halcon12 用64位處處C++ 文件,VS2015免費共享版。函數
(若是要生成32位的話,須要halcon12 用32位程序 導出C++,而且須要把VC切換爲X86平臺,測試
庫目錄改成 C:\Program Files\MVTec\HALCON-12.0\lib\x86sse2-win32;spa
配置的第五部,項目屬性 -- 配置屬性 -- 連接器 -- 輸入 -- 附加依賴項 -- 添加 halconcpp.lib,code
這裏的halconcpp.lib,須要改成C:\Program Files\MVTec\HALCON-12.0\lib\x86sse2-win32\halconcpp.libblog
其它地方和64位相同。)教程
下面開始:事件
1、VS2015方面資源
一、先生成一個MFC對話框程序,步驟略。(我得工程名稱爲:TMD視覺檢測)
VS配置:
二、先在配置管理器,把平臺改成X64,由於修改這裏的時候,下面的全部設置都會恢復默認。全部最好先設置這裏。
三、項目屬性 -- 配置屬性 -- VC++目錄 -- 包含目錄 -- 添加 $(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp;
四、項目屬性 -- 配置屬性 -- VC++目錄 -- 庫目錄 -- 添加 $(HALCONROOT)\lib\$(HALCONARCH);
(圖同上)
五、項目屬性 -- 配置屬性 -- 連接器 -- 輸入 -- 附加依賴項 -- 添加 halconcpp.lib
配置完畢!
2、實際操做部分:
一、halcon導出C++文件,切記用64位導出,我導出的文件名爲:VCDemo64.cpp
二、添加CPP到VS,在資源管理器中,源文件 -- 右鍵 -- 添加 -- 現有項 -- 找到上一部導出的halcon CPP文件
三、新建頭文件hh.h ,資源管理器 -- 頭文件 -- 添加 -- 新建項 -- 選擇頭文件 -- 命名爲hh.h (隨便)
hh.h 添加內容:
#pragma once #ifndef MY_FILE_H_ #define MY_FILE_H_ void action(); #endif
四、修改對話框Dlg CPP文件,
添加頭文件及空間(以下圖):
# include "HalconCpp.h" # include "hh.h"
using namespace HalconCpp;
五、修改halcon CPP 文件 VCDemo64.cpp,
在最頂部添加頭文件:
#include "stdafx.h"
截止到此,從新生成解決方案,可編譯成功。
3、添加按鈕激活。
一、在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 會報警,刪掉便可。
從新生成解決方案,編譯成功,運行,點擊按鈕,以下圖:(產品就不顯示了)
未完待續。