亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 技術開發 > 正文

PB8.0應用程序編譯發布技術研究

2023-06-15 12:15:02
字體:
來源:轉載
供稿:網友

摘要:本文主要討論基于Windows平臺的PowerBuilder 8.0應用程序編譯發布關鍵問題和解決方法,包括執行文件的建立、資源文件的創建、安裝程序的建立及添加數據源和SQL anywhere 數據庫移動處理等問題。

關鍵字:軟件開發、PowerBuilder 8.0、應用程序發布、Setup程序制作。

引言

PowerBuilder+ODBC+SQL anywhere是目前開發數據庫應用程序非常流行的模式。但PowerBuilder本身僅是一個開發工具,當一個應用程序被開發并完成調試后,我們還需對其建立可執行文件并移植到終端用戶的機器上,其中ODBC的配置和SQL anywhere的安裝是難點,本文論述基于Windows平臺的PowerBuilder 8.0應用程序編譯發布關鍵技術問題和解決辦法。

執行文件的建立

1、編譯格式的選擇

PowerBuilder 8.0對生成可執行文件提供了兩種編譯格式:偽代碼(Pcode,即pseudocode的縮寫)和機器代碼(Machinecode)。偽代碼是一種在所有PowerBuilder 平臺上支持的解釋性語言,它的格式與PowerBuilder 運行庫(.pbl)一樣,在可執行狀態下保存單個對象,其優點是方便和可移植;機器代碼則是真正的完全脫離PowerBuilder 環境的可執行文件,其優點是速度快,但文件容量比較大。選擇編譯代碼格式一般基于以下三個方面:

①速度。若目標是優化運行速度和應用強化腳本處理,則選擇機器代碼。要是代碼中較多地使用了循環結構、浮點運算或整數算法及函數調用,機器代碼將比偽代碼做得更好。但偽代碼的編譯速度比機器代碼快,特別是開發人員要快速地創建測試用的可執行文件時非常便利;

②大小。偽代碼生成的文件比機器代碼的小。如運行應用程序的終端機器容量緊張的話,就需要放棄較快的機器代碼而選擇偽代碼;

③移植。偽代碼對于跨平臺的應用非常有用。它可以方便地跨平臺(PowerBuilder 支持)使用,包括:Microsoft Windows (16位和32位)、AppleMacintosh和UNIX。機器代碼是依賴于平臺的,也就是說要求生成和可執行應用平臺一致,不過它可以獲得更好的性能。

2、動態庫的建立

發布PowerBuilder 8.0應用可以將一些對象不放到可執行文件中,而放到動態庫中在運行時裝入,這樣可以將應用程序分割成更小的模塊便于管理和維護。

選擇偽代碼(Pcode)編譯方式生成PowerBuilder動態庫(.pbd文件),選擇機器代碼(Machinecode)方式在Windows和UNIX平臺上生成動態鏈接庫(.dll文件,如將test.pbl編譯成test.dll),在machine平臺上生成平臺支持的共享庫(如test.lib)。如果在Windows上有兩個應用,那么編譯成的.pbd包含一個調用全局外部函數的用戶對象,為了保證正確調用函數必須為每個應用單獨編譯和發布.pbd文件。

當建立動態庫時,將源庫(.pbl文件)中所有對象的編譯版本拷貝到動態庫中。為了在某些庫中只使用所需的對象,可以將它們放到一個標準的PowerBuilder庫(.pbl)中。

在建立動態庫時,PowerBuilder并不檢查所有對象,只是簡單地去掉對象的源格式,因此,對于一些在畫筆或腳本中指定了使用資源(圖形、圖標或指針)的對象,若不想提供單獨的資源,則必須在資源文件(.pbr)中羅列出這些資源,這樣才能保證在建立動態庫時包含這些資源。

動態庫的建立有兩種途徑:一是在庫管理畫筆中建立;二是在工程畫筆中建立工程對象時一起建立。

3、資源文件的使用

可執行文件或動態庫中可以包含一些資源(圖形、圖標或指針),也可以將它們作為單獨的資源文件(.pbr文件)保存。

(1)單獨的分布資源

若某資源不包含在可執行文件或動態庫中,則在執行應用程序引用它時,PowerBuilder按查詢路徑查找該資源,因此,必須將它與應用程序一起放在查詢路徑下。

Windows的查詢路徑為:當前目錄,Windows目錄,Windows的System目錄和PATH環境變量中設置的所有目錄。

(2)資源文件

可以使用PowerBuilder資源文件(.pbr)替代單獨的資源,其中列出所有的動態分配的資源也可以包含動態分配的數據窗口對象。PowerBuilder將這些資源編譯后放入可執行文件或.pbd文件中,這些資源在執行時可直接使用。

若給數據窗口控件動態分配數據窗口對象,則必須創建一個資源文件,且在可執行文件或動態庫文件中包含該對象,或在一個單獨的動態庫中包含它。

資源文件(.pbr)是一個ASCII碼文件,在其中列出了應用程序要有到的各種資源(如.bmp、.cur、.ico、.rle和.wmf文件)和數據窗口對象。使用文本編輯器(如Windows的記事本)創建一個文本文件,其中列出在應用中動態引用的資源文件,一行列出一個資源,格式如:

appico.ico
        appbmp1.bmp
        appbmp2.bmp
         ……

以上文件和對象都假設是在當前目錄中,如果存在于另一個目錄中,則必須包含所在路徑,格式如:

e:/myapp/test.jpg。

在.pbr文件中指定的文件名必須與在腳本中引用的資源匹配,若引用時包含路徑,則在.pbr文件中也必須包含同一路徑,否則因PowerBuilder在執行時只是簡單地進行字符串比較而導致無法發現該資源。

若應用程序中包含有動態引用的數據窗口,則在.pbr文件中必須包含數據窗口對象,格式如:

yapp.pbl(dw_infodisplay)

其中:myapp.pbl為應用程序庫,dw_infodisplay為數據窗口對象,一般是在當前目錄或指定路徑。在執行時,若引用資源,PowerBuilder首先檢查可執行文件,找不到再在.pbd文件中、文件查詢路徑的目錄中查找。

在工程畫筆中建立工程對象時可以為可執行文件或每一個動態庫指定它使用的資源文件,也可以在庫管理畫筆中建立動態庫時使用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩福利伦理影院免费| 粉嫩av一区二区三区免费野| 日韩在线欧美在线| 91精品视频免费| 国产成人精品免高潮在线观看| 日韩在线观看免费全集电视剧网站| 日韩中文有码在线视频| 精品久久香蕉国产线看观看亚洲| 91超碰中文字幕久久精品| 日韩欧美在线免费观看| 亚洲片av在线| 在线观看欧美日韩国产| 国产精品一区二区av影院萌芽| 日韩麻豆第一页| 一区二区国产精品视频| 日韩在线视频免费观看| 亚洲新中文字幕| 91久久久久久久久久久久久| 中文字幕日韩av| 国产亚洲在线播放| 成人高清视频观看www| 国产精品久久久久久五月尺| 亚洲国产私拍精品国模在线观看| 国产美女直播视频一区| 日韩av在线免费看| 成人精品一区二区三区电影免费| 国产91色在线|| 国产成人拍精品视频午夜网站| 精品国产91乱高清在线观看| 91沈先生在线观看| 亚洲欧美在线第一页| 亚洲精品午夜精品| 91av在线看| 国产婷婷97碰碰久久人人蜜臀| 国产丝袜高跟一区| www.日韩av.com| 精品美女国产在线| 久久精品99久久香蕉国产色戒| 国产精品看片资源| 日韩在线观看av| 亚洲精品在线视频| 尤物tv国产一区| 热久久美女精品天天吊色| 成人在线国产精品| 深夜福利91大全| 久久天天躁狠狠躁夜夜躁2014| 中文亚洲视频在线| 国产三级精品网站| 成人黄色av播放免费| 日韩av成人在线观看| 国产在线日韩在线| 欧美激情欧美激情| 日本精品在线视频| 欧美有码在线观看视频| 国产成人涩涩涩视频在线观看| 97久久伊人激情网| 日韩美女在线看| 日韩在线www| 5278欧美一区二区三区| 欧美极品少妇全裸体| 日韩成人av网址| 精品一区精品二区| 欧美综合在线第二页| 日韩视频永久免费观看| 久久影院资源站| 日韩在线观看精品| 成人精品在线视频| 久久久久国产精品免费| 亚洲欧洲免费视频| 日韩精品在线视频观看| 日韩中文字幕精品视频| 亚洲字幕在线观看| 中文字幕日韩av| 深夜福利日韩在线看| 国产suv精品一区二区| 97色在线观看免费视频| 国产精品极品美女在线观看免费| 日韩欧美在线看| 亚洲欧美制服综合另类| 亚洲男女性事视频| 午夜精品在线视频| 亚洲成人久久久| 成人春色激情网| 少妇久久久久久| 亚洲欧美在线一区二区| 久久综合电影一区| 亚洲国产精品yw在线观看| 欧美日韩中文字幕在线视频| 韩日精品中文字幕| 国产精品美女在线观看| 日韩av中文字幕在线免费观看| 高潮白浆女日韩av免费看| 久久久国产精品x99av| 国产精品丝袜一区二区三区| 国产ts人妖一区二区三区| 国产精品精品视频一区二区三区| 成人免费网站在线| 久久99视频免费| 国产欧美最新羞羞视频在线观看| 国产亚洲欧美视频| 久久久久久久久久久久av| 欧美电影第一页| 精品久久久一区| 美女扒开尿口让男人操亚洲视频网站| 欧美影院在线播放| 国产精品jvid在线观看蜜臀| 国产在线精品播放| 欧美视频一区二区三区…| 亚洲精品永久免费| 97久久精品视频| 色悠久久久久综合先锋影音下载| 国产午夜精品全部视频播放| 久久久爽爽爽美女图片| 国产日韩欧美黄色| 日韩av网站电影| 国产精品一区二区三区免费视频| 亚洲精品有码在线| 国产91在线高潮白浆在线观看| 欧美亚洲一级片| www.99久久热国产日韩欧美.com| 亚洲欧美国内爽妇网| 久久理论片午夜琪琪电影网| 国产精品亚洲一区二区三区| 精品国产老师黑色丝袜高跟鞋| 欧美高清性猛交| 亚洲网站在线看| 国产精品久久精品| www日韩欧美| 欧美色道久久88综合亚洲精品| 亚洲日韩欧美视频一区| 久久久久亚洲精品成人网小说| 日本亚洲欧美成人| 国产成人极品视频| 成人av.网址在线网站| 亚洲专区在线视频| 插插插亚洲综合网| 亚洲曰本av电影| 成人国产亚洲精品a区天堂华泰| 亚洲电影免费观看| 精品国产91久久久久久| 欧美日产国产成人免费图片| 久久在线免费观看视频| 久久亚洲国产精品| 一区二区三区久久精品| 91久久精品日日躁夜夜躁国产| 国产精品入口免费视频一| 日韩电影免费观看中文字幕| 日日噜噜噜夜夜爽亚洲精品| 久久久久999| 国产精品美女无圣光视频| 久久久999成人| 亚洲最大成人免费视频| 5278欧美一区二区三区| 欧美黑人xxxⅹ高潮交| 亚洲免费人成在线视频观看| 欧美高清在线视频观看不卡| 精品国产一区二区三区在线观看| 精品久久久中文| 久久亚洲国产成人| 欧美在线视频免费观看| 丝袜亚洲欧美日韩综合| 97免费视频在线| 正在播放欧美一区| 亚洲第一男人天堂|