블로그는 나의 힘!
[ Programing ]/Algorithm2013. 5. 21. 23:26

타입과 내용이 들어가는 구조체로 이루어져있구요. 2개의 멤버를 가짐

1. vt 멤버에 타입정보,

2. 기타 유니언 형태의 멤버(밑에서 보듯이 위의 타입에 따라 이름이 바뀜)에 내용정보가 들어갑니다.

 

참고 :  코딩한거 일부 / /

        VARIANTARG rgArg[2];  // 버라이언트 변수 2개 선언

        VariantInit(&rgArg[0]);   // 첫번째 것 초기화....
        rgArg[0].vt=VT_I4;   // long형 타입을 쓰겠다..
        rgArg[0].lVal=1004;  // 값 입력
     
        VariantInit(&rgArg[1]); // 두번째 것 초기화
        rgArg[1].vt=VT_BSTR;  // BSTR형 타입(unicode 문자열..앞에 길이 붙음~  컴포넌트 자동화 타입 중 문자열 유일)
        rgArg[1].bstrVal=SysAllocString(L"버주카 포"); // 메모리 할당해서 값 입력... 반드시 저 함수로만 사용(정해짐)
        SysFreeString(rgArg[1].bstrVal); // 위에 문자열 경우 메모리에 할당했으므로 반드시 해제

 

VariantInit는 초기화 비슷한데....vt에 VT_EMPTY를 넣어줌..... 바로 입력할 것이면 안써도 별 상관없으나.

그냥 습관적으로 쓰이는 것 같더군요.

참고로 VariantClear(&변수);의 경우 스마트하게 해제시켜주는 거에요...문자열이면 문자열 메모리 해제...

인터페이스 포인터면 그것도 해제....포괄적인 해제라 그런지 자주 안쓰이고요

위의 경우도 이 함수를 써도 되는데 보통 문자열 해제는 저렇게 하더라구요.

 

 

 

 

출처 : http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNO=20&no=741937&ref=741902

 

[출처] VARIANT 해제|작성자 핵이

'[ Programing ] > Algorithm' 카테고리의 다른 글

TickTime -> Date 구조체로. localtime_s  (0) 2013.12.20
OS(운영체제) 이름 알아오기  (0) 2013.11.14
길찾기 알고리즘 링크  (0) 2013.05.21
욕설 필터 및 문자 검색  (0) 2011.10.10
케릭터 간 거리 측정  (0) 2011.07.14
Posted by Mister_Q