這種相對古老的呼叫方式主要用在windows系列平台上的多種語言軟體之間的合作。
此次專案合作方式是,客戶提供語音功能的ocx模組和vc++客戶端軟體,我需要在web軟體中呼叫其中的介面開發相關功能,並且呼叫客戶端軟體。
由於是研究型的專案,我花了一天時間成功的實現了軟體呼叫(靜態安裝註冊ocx),分享一下過程。
① 註冊ocx到本機
註冊命令 :cmd.exe /c regsvr32.exe my.ocx
去註冊命令:cmd.exe /c regsvr32.exe /u my.ocx
② 檢視ocx註冊結果
執行regedit,開啟登錄檔,搜尋ocx的檔名,得到登錄檔項。
右鍵匯出登錄檔項到檔案,得到如下的資訊:
1 windows registry editor version 5.0024 @="my
control
"
③ 在頁面中初始化該控制項
1<
object
id="myocx"
name
="test"
border
="0"
width
="300"
height
="300"
2style
="display: none"
3classid
="clsid:c8e251bb-1326-4870-9bf4-53593ae5b108"
4onerror
="onobjecterror()"
>
5object
>
onerror方法很重要,如果未能正確的引用剛剛註冊的控制項,會提示出錯。
script438: 物件不支援「xx」屬性或方法。
這個錯誤查詢一抓一大把,但是有效的支援卻少之又少。
本人此次遇到以下幾個情況:
1.頁面引用錯誤的classid。
2.ocx未實現安全介面。
3.ocx未標記這段**能被js呼叫。
④ 在頁面中呼叫該控制項
1function
() 6
var myobj = document.getelementbyid("myocx");
7var name = "201";
8var passwd = "201";
9var server = "192.168.8.250";
10var result =myobj.register(name,passwd,server);
11 }
⑤ 設定ie瀏覽器
開啟internet選項->安全->internet->自定義級別
在彈出框中選擇「activex 控制項和外掛程式」選項,將和activex相關的選項全部啟用。
運氣好的話,你就可以成功的呼叫ocx了。
javascript 和 的區別
equality 等同,identity 恒等。兩邊值型別不同的時候,要先進行型別轉換,再比較。不做型別轉換,型別不同的一定不等。下面分別說明 先說 這個比較簡單。下面的規則用來判斷兩個值是否 相等 1 如果型別不同,就 不相等 2 如果兩個都是數值,並且是同乙個值,那麼 相等 例外 的是,如果其中...
javascript 和 的區別
用於比較 判斷 兩者相等 在比較的時候可以 動換資料型別 用於嚴格比較 判斷兩者嚴格相等 嚴格比較,不會進行自動轉換,要求進行比較的運算元必須型別一致,不一致時返回flase。舉例說明 1 true 型別不同,將先做型別轉換,把true轉換為1,即為 1 1 此時,型別仍不同,繼續進行型別轉換,把 ...
呼叫OCX遇到的問題
最近用vc2008,在資源檢視中,對話方塊上,選擇右鍵 插入ocx,新增控制項變數csmscontrolctrl m smsctrl,自動產生,cpp,h檔案 所有的實現函式應該在cpp檔案,定義都在.h檔案才對,可是這次實現和定義都在.h檔案,cpp檔案沒有實現,包含.h檔案呼叫其ocx的函式,無...