一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

如何在VB中使用OCX文件

 風雨無阻. 2012-03-21

近來寫的不少文件都是用到系統(tǒng)的ocx文件,但是發(fā)現(xiàn)很多xp的精簡系統(tǒng)中居然都沒有這些ocx文件。搞得我的程序在許多人的機器上無法運行,這樣我就找到如下的方法來解決這個問題。即:在exe文件中將ocx作為資源文件,外部有則不理,外部沒有則自動生成。

 

     做法是,將第三方控件以自定義資源文件方式保存在程序中,程序運行之后使用控件之前將所用到的控件生成到該程序目錄下,完成控件從可執(zhí)行文件中的金蟬脫殼。

  具體做法如下:

  第一步:將要用到的控件拷貝到當前工程目錄下,右鍵單擊該控件,選擇屬性,記下文件大小。注意,應記下以字節(jié)為單位的具體數(shù)字,而不是多少K,以備編程使用。

  第二步:引用并正常使用該控件。

  第三步:新建資源文件加入工程,在資源文件編輯器中添加所使用的第三方控件為自定義資源(CUSTOM),資源號使用默認的101。如果使用了多個控件則分別添加到資源文件的101、102......資源項中,脫殼代碼也要作相應的修改。

  第四步:編寫控件脫殼代碼,使其讀取資源文件的數(shù)據(jù),在程序當前目錄下生成控件。

說一下如何加載資源吧:

            外接程序->外接程序管理器->VB 6 Resource Editor   加載->在工具欄里會多一個按鈕,點擊它。

        然后就如下面的圖,點擊紅色圓圈部分,就可以加載custom 資源了。

 如何在VB中OCX文件

 

代碼如下:

Private Const OCXSIZE = 198456 '欲生成的控件大小是198456Byte,名字為MCI32.OCX

Sub Main()
  Dim Ocx() As Byte 'OCX是個BTye類型的數(shù)組
  Dim Counter As Long
  Ocx = LoadResData(101, "CUSTOM") '將自定義資源中101號資源讀入數(shù)組OCX
  '注意,微軟的幫助中對加載自定義資源的說明有錯誤,自定義資源標識為"CUSTOM"而不是幫助所說的數(shù)字10

  If Right(App.Path, 1) = "($%$43%^#ASD#2@$#f$%^)" Then '讀取程序所在路徑,判斷是否為根目錄并分別處理
    '程序在根目錄下
    If Dir(App.Path & "MCI32.OCX") = "" Then '程序路徑下有無控件,無則生成控件
      '以二進制方式寫(生成)控件(CoolToolBar.ocx)到主程序所在的目錄
      Open App.Path & "MCI32.OCX" For Binary As #1
      For Counter = 0 To OCXSIZE - 1 '注意因為從0 Byte開始因此以文件大小 - 1Byte 為終值
        Put #1, , Ocx(Counter)
      Next Counter
      Close #1
    End If
  Else
    '程序不在根目錄下
    If Dir(App.Path & "/MCI32.OCX") = "" Then '程序路徑下有無控件,無則生成控件
      '以二進制方式寫(生成)控件(CoolToolBar.ocx)到主程序所在的目錄
      Open App.Path & "/MCI32.OCX" For Binary As #1
      For Counter = 0 To OCXSIZE - 1 '注意因為從0 Byte開始因此以文件大小 - 1Byte 為終值
        Put #1, , Ocx(Counter)
      Next Counter
      Close #1
    End If
  End If
  Form1.Visible = True '主程序所用控件已經(jīng)生成,顯示主窗體,進入主程序。
End Sub

  注意:將以上代碼作為一個模塊添加到工程中,并在工程-工程屬性設置中將啟動對象選為Sub Main,即上面的脫殼代碼。然后編譯生成EXE文件,將該EXE文件拷貝到其他沒有安裝所用控件的計算機上運行一下看看是否實現(xiàn)了控件攜帶之金蟬脫殼。如果是那么OK!以上為使用一個控件的情況,使用多個控件方法基本相同,不在贅述。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲精品国产主播一区| 国产传媒免费观看视频| 欧美在线视频一区观看| 中文字幕人妻一区二区免费| 免费黄色一区二区三区| 国产免费观看一区二区| 男女激情视频在线免费观看| 在线观看视频日韩成人| 国产日韩欧美专区一区| 亚洲成人久久精品国产| 欧美久久一区二区精品| 国产精品丝袜美腿一区二区| 视频在线播放你懂的一区| 日韩中文字幕狠狠人妻| 欧美丰满人妻少妇精品| 人人妻在人人看人人澡| 亚洲国产av精品一区二区| 亚洲综合精品天堂夜夜| 亚洲中文字幕在线观看黑人| 视频一区二区三区自拍偷| 中文字幕精品一区二区三| 男生和女生哪个更好色| 国产精品成人一区二区在线| 国产成人一区二区三区久久| 91久久精品国产成人| 一二区不卡不卡在线观看| 伊人网免费在线观看高清版| 欧美性欧美一区二区三区| 人妻久久这里只有精品| 久热香蕉精品视频在线播放| 日韩在线视频精品中文字幕| 噜噜中文字幕一区二区| 亚洲精品福利入口在线| 欧美成人久久久免费播放| 欧洲日本亚洲一区二区| 日本深夜福利视频在线| 国产一级一片内射视频在线| 国产麻豆视频一二三区| 中文日韩精品视频在线| 偷拍美女洗澡免费视频| 国产一级性生活录像片|