간단한 유형 또는 포인터라고 가정 할 때 벡터의 내용을 기본 SAFEARRAY로 직접 복사해야합니다.
vector<T> vecInput;
// Create a SAFEARRAY of size elements
CComSafeArray<T> sa(vecInput.size());
// Copy all the contents into the SAFEARRAY
for (size_t i = 0; i < vecInput.size(); ++i)
sa.SetAt(i, vecInput[i]);
당신은 STL 알고리즘을 사용하려면, 그 후에 당신이 CComSafeArray::Attach
이 호출 할 수 있습니다 적어도 one solution that provides STL compliant iterators on top of a SAFEARRAY 것 :
vector<T> vecInput;
// Create a SAFEARRAY of size elements
CComSafeArray<T> sa(vecInput.size());
// Copy all the contents into the SAFEARRAY
memcpy(&sa.GetSafeArrayPtr()->pvData[0], &vecInput[0], sizeof(T) * vecInput.size());
당신은 벡터도 작동 반복, 일반화 된 솔루션을 찾고 있다면 SAFEARRAY를 CComSafeArray에 할당하십시오.
그럼 스택 오버플로를 물어보십시오. 빨리. –
벡터 <>에 대한 유형이 있습니까, 아니면 일반적인 솔루션을 찾고 있습니까 (이 시점에서 나는 어느 정도 확신하지 못합니다)? 나는. 이 벡터에 원하는, 벡터 등? –
WhozCraig