日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

在C++中使用CognexVisionpro (修订2.0)

發(fā)布時(shí)間:2024/3/24 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在C++中使用CognexVisionpro (修订2.0) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

由于visionpro在7.2以及后續(xù)的版本中全面支持.net架構(gòu),不在發(fā)布COM組件。所以不能在VC++中直接使用visionpro. 但是可以利用interop 將.net 的程序封裝為要吧在VC++中調(diào)用的COM組件。使用方法如下:

  • VB.net中建一個(gè)工程InteropUserControl
  • 添加reference

    代碼中加入 improts …

    加入函數(shù) 例如 public OpenImage()

    界面中加入顯示內(nèi)容。

    以上內(nèi)容與VB.net編程一致。在此不再詳述。

  • 編譯
  • 在debug 文件中輸出兩個(gè)文件,*.dll, *.tlb

    注意:編譯需要管理員權(quán)限。 Register for COM interop 勾選。

    3,注冊(cè)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è)成功。

    卸載命令:

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe .dll /unregister /tlb:.tlb.

    如果是64位系統(tǒng),請(qǐng)選擇Framework64

    全局程序集緩存工具

    C:\Windows\system32\ gacutil.exe /i *.dll

    Register DLL Assembly Gacutil.exe(全局程序集緩存工具)
    全局程序集緩存工具使你可以查看和操作全局程序集緩存和下載緩存的內(nèi)容。

    此工具會(huì)自動(dòng)隨 Visual Studio 一起安裝。 若要運(yùn)行此工具,請(qǐng)使用開(kāi)發(fā)人員命令提示(或 Windows 7 中的 Visual Studio 命令提示)。

    使用方法如下:

    方法1: (1).開(kāi)始菜單->Microsoft Visual Studio 2010 ->Visual Studio Tools->Visual Studio Command Prompt (2010) 命令提示,在控制臺(tái)中輸入 gacutil.exe 回車(chē),既可以看到一些參數(shù)。

    (2).輸入:gacutil.exe -i dll路徑,就可完成DLL的注冊(cè)。

    注:如果輸入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).打開(kāi)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即可完成注冊(cè)。

    注:該方法主要是找到gacutil.exe,進(jìn)入該路徑下,注冊(cè)對(duì)應(yīng)dll所在的物理地址。

    以上完成了使用 Gacutil.exe 注冊(cè)DLL, Gacutil.exe具體的使用請(qǐng)參見(jiàn) 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中編寫(xiě)的方法:

    m_pUserControl->OpenImage()

    注意:dll,在編譯的過(guò)程中可能會(huì)被破壞,需要重新注冊(cè)。修改界面后,需要重新生成強(qiáng)制簽名。

    至此,你學(xué)會(huì)了在VC中調(diào)用VB.net中封裝的COM!

    總結(jié)

    以上是生活随笔為你收集整理的在C++中使用CognexVisionpro (修订2.0)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。