2017-02-17 13 views
0

PHP 코드에서 8209 유형의 배열 변형 객체를 반환하는 COM 객체 메소드를 호출합니다.8209 배열 객체 변형을 VT_VARIANT로 변환하는 방법

$com_VArray = $com_Object->objectMethod; //Is a 8209 variant object 

난 VT_VARIANT [12]로 입력을 요구 다른 COM 객체 메소드에 대한 값으로 변환 VT_VARIANT 객체를 전달할 결국 원한다.

나는 다음

$obj_VT_VARIANT = variant_cast($com_VArray, VT_VARIANT); 

하지만를 실행하여 VT_VARIANT 객체 변형 유형에 $ com_VArray 변환하고 내가 여기 variant_cast에 좀 더 읽기 http://php.net/manual/en/function.variant-set-type.php했을

Fatal error: Uncaught exception 'com_exception' with message 'Variant type conversion failed: Type mismatch.' in C:\xampp\htdocs\waterCompany\reservoir.php:110 Stack trace #0 C:\xampp\htdocs\waterCompany\reservoir.php(110): variant_cast(Object(variant),12)#1{main} thrown in C:\xampp\htdocs\waterCompany\reservoir.php on line 110.

이 다음과 같은 오류를 얻을 그러나 나는 많은 중요한 진로를 만들지 못했다.

PHP 5.5.11을 사용하고 있습니다.

+1

[tag : vbscript]는 어디에 적합합니까? – Lankymart

+1

VT_UI1이 포함 된 Variat를 검색했습니다. VT_VARIANT 유형의 변형이 없으며 변형 (VT_BYREF) 또는 변형 배열에 대한 포인터가있을 수 있습니다. – xMRi

+0

xMRi 왜 그런 말을 더 자세히 설명해주십시오. https://msdn.microsoft.com/en-us/library/windows/desktop/ms221170(v=vs.85).aspx를 참조하십시오. 내 응용 프로그램의 개체 메서드에는 VT_VARIANT가 필요합니다. –

답변

0

8209는 VT_UI1 요소의 배열을 알리는 0x2011입니다.

변환 할 때 Variant 배열을 만들고 이전 유형의 각 요소를 해당 요소에 복사해야합니다. 내용을 복사 할 때 각 VT_UI1 요소를 VT_VARIANT 유형으로 캐스팅 할 수 있습니다.

배열을 캐스트 할 수 없으며 허용되지 않습니다. VARIANT의 기본 코드를 배우려고 시도하십시오.