C語(yǔ)言輔導(dǎo):如何使當(dāng)前程序的對(duì)象進(jìn)入腳本

字號(hào):

寫(xiě)JavaScript實(shí) 現(xiàn)數(shù)值計(jì)算,例如: _variant_t outpar=pScriptControl->Eval(_bstr_t("1+4*5")); 這樣的數(shù)值計(jì)算不涉及js調(diào)用腳本外部的對(duì)象,例子到處可見(jiàn),但是應(yīng)用范圍非常窄小。也就是說(shuō),從現(xiàn)有的文獻(xiàn)來(lái)看,用VC調(diào)用 JavaScript 都是 JavaScript 單向的,但是從來(lái)沒(méi)見(jiàn)過(guò)把VC中的現(xiàn)有的對(duì)象交給 JavaScript 反過(guò)來(lái)調(diào)用(也就是雙向調(diào)用)。有些人已經(jīng)實(shí)現(xiàn)或者看到, JavaScript 可以通過(guò) obj = new ActiveXObject(...);的方式,把用VC編寫(xiě)COM,然后讓 JavaScript 創(chuàng)建調(diào)用,但是,這樣new出來(lái)的對(duì)象,仍然不是VC應(yīng)用的現(xiàn)有對(duì)象。如果要調(diào)用現(xiàn)有對(duì)象,需要通過(guò)被new的COM對(duì)象間接調(diào)用才行,而且應(yīng)用程序被調(diào)用的對(duì)象也是COM規(guī)范。如果通過(guò)COM來(lái)實(shí)現(xiàn)這個(gè)難題,應(yīng)用程序結(jié)構(gòu)比較復(fù)雜,JavaScript 創(chuàng)建COM,所創(chuàng)建的COM能訪問(wèn)應(yīng)用程序?qū)ο蟆?BR>    所以要擴(kuò)大 JavaScript 的應(yīng)用范圍,必須實(shí)現(xiàn)這樣的核心問(wèn)題:雙向調(diào)用。
    雙向調(diào)用的一個(gè)分解問(wèn)題是,VC對(duì)象如何進(jìn)入腳本呢?下面介紹一種實(shí)現(xiàn)方法。