在CPP中呼叫Jscript中的函式

2021-08-22 04:01:58 字數 1899 閱讀 9415

在cpp中呼叫jscript中的函式

在c++中呼叫jscript的函式非常簡單,windows提供了乙個msscript.ocx的控制項,利用這個控制項可以直接操作jscript: 執行一段jscript指令碼,或者呼叫指定的函式。我寫了乙個簡單的例子:

l匯入msscript.ocx。下面這條指令會在專案目錄中生成msscript.tli和msscript.tlh兩個檔案,裡面有msscript.ocx中所有介面的描述和iid的定義。

#import

"msscript.ocx"

no_namespace

l宣告乙個物件。

ccomptr

<

iscriptcontrol

> m_iscriptcontrol;

l建立物件例項if(

succeeded

(m_iscriptcontrol

.cocreateinstance

(__uuidof

(scriptcontrol

))))

l設定語言等屬性。

m_iscriptcontrol

->

putlanguage

(l"jscript"

);m_iscriptcontrol

->

putallowui

(variant_false);l

加入jscript**。

m_iscriptcontrol

->

addcode

(l"function test(str1, str2) ");

l獲得函式,這裡要說明的是getitem的引數是1到n,而不是0到n-1。

ccomptr

<

iscriptprocedurecollection

>

aprocedureset

= m_iscriptcontrol

->

getprocedures

();longn=

aprocedureset

->

getcount

();ccomptr

<

iscriptprocedure

>

aprocedure

= aprocedureset

->

getitem

(_variant_t(n

));_bstr_t

strfunction

= aprocedure

->

getname

();l

準備函式引數。

variant

va= ;va.

vt=

vt_bstr;n

= 2;

safearraybound

bounds

[1] = ;

bounds

[0].

celements= n

;safearray

* psa

= safearraycreate

(vt_variant

, 1,

bounds

);long

i= 0;

for(

i= 0;

i< n;

i++) l

呼叫函式。

_variant_t

result

= m_iscriptcontrol

->

run(

strfunction

, &psa);

l釋放引數。

for(

i= 0;

i< n;

i++)

safearraydestroy

(psa);

在CPP中呼叫Jscript中的函式

作者 李先靜 在c 中呼叫jscript的函式非常簡單,windows提供了乙個msscript.ocx的控制項,利用這個控制項可以直接操作jscript 執行一段jscript指令碼,或者呼叫指定的函式。我寫了乙個簡單的例子 o 匯入msscript.ocx。下面這條指令會在專案目錄中生成mssc...

如何在乙個cpp中呼叫另乙個cpp中的類?

解決方案 新建乙個同名頭檔案,將這個cpp中的類的宣告放在標頭檔案中,在這個cpp以及要呼叫的cpp中include這個標頭檔案即可。在物件導向的程式開發中,一般做法是將類的宣告 其中包含成員函式的宣告 放在指定的標頭檔案中,使用者如果想用該類,只要把有關的標頭檔案包含進來即可,不必在程式中重複書寫...

在程式中呼叫Start Run

public declare function shrundialog lib shell32 alias 61 byval howner as long,byval unknown1 as long,byval unknown2 as long,byval sztitle as string,by...