을 위해 노력하고, get_tables(&_result)
는 _result
에 테이블의 목록을 지정하고 hr
의 값은 S_OK
된다. 나는 윈도우 7 (32 비트)와 동일한 코드를하려고하면기능 get_tables()는 윈도우 7에 대한 실패,하지만 난 (아래) 코드를 디버깅 할 때 Windows XP에서 윈도우 XP
는 get_tables
기능 _result
에 NULL (은 0x00000)을 (즉,이 제외되지 않음)에 할당되고, hr
의 값이된다 "응용 프로그램 인터페이스라고하는 다른 스레드에 대한 마샬링되었다 ". 내 응용 프로그램이 충돌합니다.
왜 Windows 7 (32 비트)에서 이러한 현상이 발생합니까?
스레드를 정렬해야합니까?
또는 Windows 7의 일부 설정을 변경해야합니까?
// Append the new table
m_pCatalog->Tables->Append(_variant_t((IDispatch *) pTableNew));
나는이 점에 가서 디버깅하는 동안 (아래 참조).
inline TablesPtr _Catalog::GetTables()
{
struct Tables * _result;
HRESULT _hr = get_Tables(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return TablesPtr(_result, false);
}
이 –