C + +에서 Microsoft 스크립트 컨트롤의 Run() 메서드를 호출 하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 229669
모두 확대 | 모두 축소

요약

이 문서에서는 Microsoft 스크립트 컨트롤을 사용 하 여 JavaScript 나 VBScript에서 정의한 서브루틴 또는 함수를 호출 하는 방법을 보여 줍니다.

추가 정보

스크립트 컨트롤 네 가지 메서드가 있습니다. 그 중 하나가 서브루틴 또는 함수를 실행 하는 Run()입니다. 이 메서드를 호출 하기 전에 스크립트 언어 지정, AllowUI, 설정 및 스크립트 컨트롤에 다음 스크립트 추가:
//---------------------- Begin ---------------------------

#include <stdio.h>
#import "C:\winnt\system32\msscript.ocx"  // msscript.ocx 
using namespace MSScriptControl;

int main(void)
{
	HRESULT hr = CoInitialize(NULL);

	IScriptControlPtr pScriptControl(__uuidof(ScriptControl));

	// Create a VARIANT array of VARIANTs which hold BSTRs
	LPSAFEARRAY psa;
	SAFEARRAYBOUND rgsabound[]  = { 3, 0 }; // 3 elements, 0-based
	int i;

	psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
	if (!psa)
	{
		return E_OUTOFMEMORY;
	}

	VARIANT vFlavors[3];
	for (i = 0; i < 3; i++)
	{
		VariantInit(&vFlavors[i]);
		V_VT(&vFlavors[i]) = VT_BSTR;
	}

	V_BSTR(&vFlavors[0]) = SysAllocString(OLESTR("Vanilla"));
	V_BSTR(&vFlavors[1]) = SysAllocString(OLESTR("Chocolate"));
	V_BSTR(&vFlavors[2]) = SysAllocString(OLESTR("Espresso Chip"));

	long lZero = 0;
	long lOne = 1;
	long lTwo = 2;

	// Put Elements to the SafeArray:
	hr = SafeArrayPutElement(psa, &lZero,&vFlavors[0]);
	hr = SafeArrayPutElement(psa, &lOne,&vFlavors[1]);
	hr = SafeArrayPutElement(psa, &lTwo,&vFlavors[2]);

	// Free Elements from the SafeArray:
	for(i=0;i<3;i++)
	{
		SysFreeString(vFlavors[i].bstrVal);
	}

	// Set up Script control properties
	pScriptControl->Language = "JScript";
	pScriptControl->AllowUI = TRUE;
	pScriptControl->AddCode(
		"function MyStringFunction(Argu1,Argu2,Argu3)\ 
		{  return \"hi there\" ;}" );

	//  Call MyStringFunction with the two args:
	_variant_t outpar = pScriptControl->Run("MyStringFunction", &psa);
	

	// Convert VARIANT to C string:
	_bstr_t bstrReturn = (_bstr_t)outpar;
	char *pResult = (char *)bstrReturn;


	// Print the result out:
	printf("func=%s\n",pResult);
	
	//  Clean up:
	SafeArrayDestroy(psa);

	CoUninitialize();
	return(0);
}

// --------------- End -----------------------
				

참조

스크립트 컨트롤에 대 한 정보를 찾을 수 있는 MSDN 사이트 스크립팅.

자세한 내용은 Microsoft 기술 자료의 다음 문서에서 찾을 수 있습니다.
184977 VBScript에서 MFC에 대 한 수정: ScriptControl 보고서 잘못 된 언어

165967 PRB: 비-variant 배열을 참조 하는 경우 스크립트 오류를 발생

속성

기술 자료: 229669 - 마지막 검토: 2013년 7월 20일 토요일 - 수정: 3.0
키워드:?
kbautomation kbhowto kbscript kbmt KB229669 KbMtko
기계 번역된 문서
이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.
이 문서의 영문 버전 보기:229669

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com