在CPP中呼叫Jscript中的函式

2021-04-22 09:56:19 字數 1360 閱讀 5883

作者****:李先靜

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

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

#import "msscript.ocx" no_namespace
o 宣告乙個物件。

ccomptr> m_iscriptcontrol;
o 建立物件例項

if(succeeded(m_iscriptcontrol.cocreateinstance(__uuidof(scriptcontrol))))
o 設定語言等屬性。

m_iscriptcontrol->putlanguage(l"jscript");

m_iscriptcontrol->putallowui(variant_false);

o 加入jscript**。

m_iscriptcontrol->addcode(l"function test(str1, str2) ");
o 獲得函式,這裡要說明的是getitem的引數是1到n,而不是0到n-1。

ccomptraprocedureset = m_iscriptcontrol->getprocedures();

long n = aprocedureset->getcount();

ccomptraprocedure = aprocedureset->getitem(_variant_t(n));

_bstr_t strfunction = aprocedure->getname();

o 準備函式引數。

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++)

o 呼叫函式。

_variant_t result = m_iscriptcontrol->run(strfunction, &psa);

o 釋放引數。

for(i = 0; i < n; i++)

safearraydestroy(psa);

在CPP中呼叫Jscript中的函式

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

如何在乙個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...