다음은 C++ 프로그램의 주요 방법입니다.COM에서 Release() 함수
int main(){
HRESULT hr = S_OK;
IDataCollectorSet* pdcs = NULL;
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
hr = CreateDCS(pdcs);
if (FAILED(hr))
{
wprintf(L"CreateDCS failed.\n");
goto cleanup;
}
hr = AddDataCollector(pdcs);
if (FAILED(hr))
{
wprintf(L"AddDataCollector failed.\n");
goto cleanup;
}
hr = SaveDCS(pdcs);
if (FAILED(hr))
{
wprintf(L"SaveDCS failed.\n");
goto cleanup;
}
hr = pdcs->Start(VARIANT_TRUE);
if (FAILED(hr))
{
wprintf(L"pdcs->Start failed.\n");
goto cleanup;
}
getchar();
cleanup:
if (pdcs)
pdcs->Release();
CoUninitialize();
}
"정리"태그 내에서 "Release()"기능으로 수행되는 작업을 이해하지 못합니다. Release() 함수를 * pdcs에 호출 할 수 있으면 IDataCollectorSet 클래스에서 선언해서는 안됩니까? 해당 설명서에서 "Release()"로 정의 된 함수를 찾을 수 없습니다.
어디에서 신고되었으며이 기능의 목적은 무엇입니까?
참고 : 포함 된 헤더 파일은
#include <windows.h>
#include <stdio.h>
#include <comutil.h>
#include <pla.h>
"Release()"기능은 "C++에서"제공되지 않으며 C++ 표준의 일부가 아닙니다. COM 함수이므로 제목이 다소 잘못 될 수 있습니다. 나는 지금 제목을 편집했다. – sashoalm
고마워요! 내가 질문을 게시했을 때 나는 그것에 대해 몰랐다 – DesirePRG
왜 항상'CreateDCS'의 결과로 그것을 덮어 쓰려고한다면'hr' (S_OK와'CoInitializeEx'의 결과)에 두 개의 값을 할당합니까? – MSalters