在C++中使用CognexVisionpro (修订2.0)
由于visionpro在7.2以及后續(xù)的版本中全面支持.net架構(gòu),不在發(fā)布COM組件。所以不能在VC++中直接使用visionpro. 但是可以利用interop 將.net 的程序封裝為要吧在VC++中調(diào)用的COM組件。使用方法如下:
添加reference
代碼中加入 improts …
加入函數(shù) 例如 public OpenImage()
界面中加入顯示內(nèi)容。
以上內(nèi)容與VB.net編程一致。在此不再詳述。
在debug 文件中輸出兩個(gè)文件,*.dll, *.tlb
注意:編譯需要管理員權(quán)限。 Register for COM interop 勾選。
3,注冊dll, tlb文件。
將*.dll ,*.tlb文件copy至system32下。
管理員權(quán)限運(yùn)行cmd.exe
regasm.exe的全路徑, 在C:\Windows\Microsoft.NET\Framework\v4.0.30319
在命令中輸入:C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe .dll /tlb:.tlb.
注冊成功。
卸載命令:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe .dll /unregister /tlb:.tlb.
如果是64位系統(tǒng),請選擇Framework64
全局程序集緩存工具
C:\Windows\system32\ gacutil.exe /i *.dll
Register DLL Assembly Gacutil.exe(全局程序集緩存工具)
全局程序集緩存工具使你可以查看和操作全局程序集緩存和下載緩存的內(nèi)容。
此工具會(huì)自動(dòng)隨 Visual Studio 一起安裝。 若要運(yùn)行此工具,請使用開發(fā)人員命令提示(或 Windows 7 中的 Visual Studio 命令提示)。
使用方法如下:
方法1: (1).開始菜單->Microsoft Visual Studio 2010 ->Visual Studio Tools->Visual Studio Command Prompt (2010) 命令提示,在控制臺中輸入 gacutil.exe 回車,既可以看到一些參數(shù)。
(2).輸入:gacutil.exe -i dll路徑,就可完成DLL的注冊。
注:如果輸入gacutil.exe找不到,我的電腦里面安裝了VS2010和VS2013,使用此方法失敗。
方法2:(1).在路徑C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools 下找到gacutil.exe。(不同的操作系統(tǒng),可能不一樣)
(2).打開cmd,輸入cd C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools,進(jìn)入當(dāng)前路徑下,
然后輸入gacutil /i C:\Projects\Code\EAR\Branch20130515\Telerik\Telerik.OpenAccess.dll即可完成注冊。
注:該方法主要是找到gacutil.exe,進(jìn)入該路徑下,注冊對應(yīng)dll所在的物理地址。
以上完成了使用 Gacutil.exe 注冊DLL, Gacutil.exe具體的使用請參見 http://msdn.microsoft.com/zh-CN/library/ex0ss12c.aspx 。
4,VC中的調(diào)用。
在 頭文件中加入:
#import "C:\Windows\system32\VB_netToVB6.tlb"raw_interfaces_only, raw_native_types, no_namespace, named_guids, no_implementation
定義成員變量:
CComQIPtr<_InteropUserControl>m_pUserControl;
在界面中添加ActiveX 控件,前面VB.net生成的,*.interopUserControl
在初始化中將控件與成員變量綁定:
m_pUserControl=GetDlgItem(IDC_INTEROPUSERCONTROL1)->GetControlUnknown();
在需要的地方調(diào)用VB.net中編寫的方法:
m_pUserControl->OpenImage()
注意:dll,在編譯的過程中可能會(huì)被破壞,需要重新注冊。修改界面后,需要重新生成強(qiáng)制簽名。
至此,你學(xué)會(huì)了在VC中調(diào)用VB.net中封裝的COM!
總結(jié)
以上是生活随笔為你收集整理的在C++中使用CognexVisionpro (修订2.0)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【py】Python八大行星漂亮动画演示
- 下一篇: SimpleScalar的安装方法(Re