Authorware UCD 開發大揭秘 二

2021-03-31 11:00:18 字數 1754 閱讀 6332

入   門   篇

- authorware外掛程式的格式。 

用過authorware的朋友可能會注意到在authorware系統目錄下有十幾個擴充套件名為.u32或.ucd的檔案,沒錯,這就是authorware的外掛程式。其實這些檔案的格式是非常標準的window動態鏈結庫檔案,也就是*.dll這樣的檔案。authorware通過在動態鏈結庫檔案中訪問指定的函式,如果該函式需要引數,則authorware傳遞給該檔案所訪問的函式的所有引數,如果該函式有乙個返回值,則authorware得到該函式的返回值。但是,問題是:authorware呼叫這些函式時並不知道該函式的引數或返回值,即便是在viusal basic中呼叫外部函式也需要事先宣告函式的表示式,引數和返回值。下面大家就跟我一步一步揭開authorware外掛程式的奧秘。 

二 字串資源的奧秘。 

我想我們最好通過乙個例項來說明authorware是怎樣實現的。假設我們現在需要在authorware中實現這樣乙個功能:我們用authorware開發了乙個多**課件或其他演示軟體,不希望有他人偷偷執行這個程式,需要用乙個口令輸入框來限制一下,而authorware沒有提供相應的功能,現在我們就用dephi來實現這個功能。現在我們需要建立乙個函式來呼叫輸入框,函式原型如下: 

displayinputbox(caption,information,defaulttxt:pchar):pchar; 

這裡我們需要傳遞三個引數:caption:輸入框標題 

information:提示文字 

defaulttxt:預設文字 

返回值:使用者最終輸入的文字。 

因為這裡是編寫dll函式,所以字串型別只能用pchar,而不能用dephi的string型別,因為同外部程式進行資料交換需用同c相容的以零字元結尾的字串。authorware外掛程式與普通dll檔案不同的是:它多了乙個字串資源,以上面這個函式為例,該字串的格式如下:(括號內為注釋文字,不加入) 

1 dll_header loadoncall discardable (函式原型宣告) 

begin 

"displayinputbox/0", ("/0"為供authorware識別換行用,下同) 

"/0" 

end 

displayinputbox dll_header loadoncall discardable (函式引數和返回值說明) 

begin 

"/0", (換行) 

"s/0", (第乙個為返回值說明,這裡「s/0「表示返回值為字串型別) 

"sss/0", (注意這裡三個s表示引數為三個字串型別); 

"result=dispinputbox(caption,tiptxt,defaulttxt)/r/n" (函式呼叫說明,主要給使用者介紹函式用法,它最終顯示在authorware呼叫函式說明框中) 

"/r/n" (這裡空一行) 

end 

好了,現在明白了吧,authorware識別函式格式的秘密全在這個字串資源列表中。此外我要說明一下,如果引數或返回值為integer(整型變數)則表示為」i/0」,如果為long(長整型變數)則表示為」l/0」.下面我們要作的事就是趕緊用乙個文字編輯器(記事本就行)將上述字串資源輸入,並 儲存,我們起名為wresource.rc。找到dephi系統下bin目錄,用brcc32.exe檔案將 該檔案編譯成資源檔案awresource.res。方法是在開始選單中輸入命令列」brcc32.exe awresource.rc」。將生成的資源檔案儲存到我們馬上要開工的dephi工程檔案目錄下, 我們就可以開始使用dephi編寫authorware外掛程式了。

Authorware UCD 開發大揭秘 四

用過或者說熱愛dephi的朋友們都遇到過這種情況 得到乙個非常非常酷的vcl元件,確只能在ide開發環境下執行,一旦編譯成exe檔案單獨執行就不能用了,偶爾 良心 的也會在這時彈出乙個對話方塊,要你花xx美元註冊並購買這個元件 這正是我等痛恨的,有同感的請舉手 假設我們開發了乙個authorware...

mac開發 ios開發

但是,任何乙個作業系統上,只使用開發語言就去開發程式是不行的。還需要有介面庫。尤其是支援object c的介面庫。mac上使用oc開發應用程式,都會使用xcode這個ide,整合開發工具,xcode中整合了gui介面庫。可以直接拖動控制項到介面上。objective c是一門語言,而cocoa 是這...

Quartz開發 基礎開發

開發環境.net 4.5.1 quartz.dll v2.4.1.0 依賴下面的dll common.loggin.dll v3.3.1.0 依賴下面的dll common.loggin.core.dll v3.3.1.0 本次教程只介紹基於quartz jobs.xml配置檔案方式的開發,這也是簡...