<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    vc2010下使用64位控件

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    最近把我的控件(ST_Curve www.st-curve.cn)升級到了64位,2010編譯,本來以為很簡單的問題,結果折騰了兩天(也有可能我多年沒做過界面和vc相關的東西了吧),于是把我遇到的問題羅列一下,希望對需要的人有所幫助(驗證的不是很充分,不保證百分之百正確)

    一:如果一個很老的工程(比如vc6),最好不要直接用vc2010的ide轉換工程,而是在vc2010下新建一個工程,再把代碼拷貝過來。通過轉換的方法,帶來一個典型的問題就是,64位版本的輸出位置和32位的完全相同,這樣編譯64位版本時,必將覆蓋32位版本的輸出,當然這個問題可以通過修改工程解決,但麻煩,而且就算解決了,也不通用,比如標準的輸出目錄的寫法是:$(SolutionDir)$(Platform)\$(Configuration)\,你自己去寫,很可能不會寫成這個樣子;

    二:64位程序只能使用64位AcitveX(推測),32位程序只能使用32位AcitveX(實測),但我在網上似乎看到某人說過,ActiveX的位數與容器的位數無關,不知道是他對還是我對;

    三:vc6工程用vc2010 ide直接轉成vc2010工程,再添加一個x64配置,此時原來的32位編譯運行都沒有問題,而64位的編譯正確,卻不能運行(64位AcitveX已經安裝),在vc2010下新建一個工程,添加ActiveX,再編譯運行,則64位和32位都能運行(這進一步說明了我上面說的,太老的工程直接轉vc2010工程有些麻煩);

    四:64位和32位ActiveX可以同時存在于同一個系統,他們在注冊表中被儲存在不同的位置;

    五:如果只有64位ActiveX,則在vc2010 ide里面“插入AcitveX”的時候,找不到控件;我想可能是,ide是32位的(一般情況下都是32位的,各位可以看看自己的vc2010是多少位的);如果再為系統安裝一個32位的AcitveX,則“插入AcitveX”的時候,可以找到控件,這個控件的位置顯示是32位ActiveX的位置,添加控件到工程之后,可以為控件生成包裝類,這個跟vc6差別不大,無非是默認的類名不一樣,代碼寫的位置不一樣(vc2010都寫在了.h文件里面)。此時為工程增加一個x64配置,仍然可以在ide里面看到控件,只是用的仍然是32位的控件,編譯之后運行,則使用的是64位控件(沒有64位控件時,將不能運行程序,所以ide中看見控件已經顯示了,但運行時出錯,是完全有可能的)。

    六:對于上面第五點說的,如果我只想編譯64位程序,那豈不是要同時安裝32位和64位控件,簡單來說,是的。但控件是可以動態創建的,只要你不在ide中拖控件,是不需要安裝32位控件的。但這會帶來一系列麻煩,由于在“插入AcitveX”找不到控件,也就無法為控件生成包裝類(可以去其它機器上拷貝),也就無法操作控件的屬性、事件等等。一勞永逸的辦法可能是安裝64位vc2010了(如果有的話,我感覺它不一定有,因為它支持交叉編譯,提供一個32位版本就基本夠了)。

    七:在vc2010中,如果控件接口有修改,想要對一個已經生成包裝類的工程重新生成接口(獲得更新),很是麻煩,我找了好久,才發現一個方法,當然不排除還有更更好的方法,這個方法見我在CSND提的問題:
    http://topic.csdn.net/u/20120711/22/eeaf333d-5072-463b-9f4c-a738b8b590b7.html
    基本要點就是刪除工程文件的里面的相關內容。

     

    from:http://blog.csdn.net/yang79tao/article/details/7705754

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全