HRESULT = 0x80131902 при использовании Ischeduler.connect

Я пытаюсь подключиться к Windows HPC, используя C ++ с кодом, который я поднял с https://msdn.microsoft.com/en-us/library/cc853425(v=vs.85).aspx

в тестовом проекте все работало хорошо, но когда я попытался скопировать вставить в свой основной проект, я начал получать 0x80131902 из строки pScheduler-> Connect.

Я попытался сопоставить все настройки проекта, закомментировал весь код, но это и та же ошибка.
Дошло до того, что я обдумываю перестройку своего основного проекта с нуля, но это большой и запутанный беспорядок, которого я бы предпочел избежать, если это возможно.

Кто-нибудь сталкивался с этой проблемой?

// The Microsoft.Hpc.Scheduler.tlb and Microsoft.Hpc.Scheduler.Properties.tlb type
// libraries are included in the Microsoft HPC Pack 2008 SDK. The type libraries are
// located in the "Microsoft HPC Pack 2008 SDK\Lib\i386" or \amd64 folder. Include the rename
// attributes to avoid name collisions.

#include <windows.h>
#include <stdio.h>

#import <C:\Program Files\Microsoft HPC Pack 2008 R2\Bin\Microsoft.Hpc.Scheduler.tlb> named_guids no_namespace raw_interfaces_only \
rename("SetEnvironmentVariable","SetHpcEnvironmentVariable") \
rename("AddJob", "AddHpcJob")
#import <C:\Program Files\Microsoft HPC Pack 2008 R2\Bin\Microsoft.Hpc.Scheduler.Properties.tlb> named_guids no_namespace raw_interfaces_only

void connectToHPC(const char* ServerName)
{
HRESULT hr = S_OK;
IScheduler* pScheduler = NULL;
ISchedulerCollection* pJobs = NULL;
IIntCollection* pJobIds = NULL;
IFilterCollection* pFilters = NULL;
VARIANT var;
long count = 0;
long jobId = 0;
long* retVal = nullptr;

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);

// Get an instance of the Scheduler object.
hr = CoCreateInstance( __uuidof(Scheduler), // CLSID_Scheduler,
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IScheduler), // IID_IScheduler,
reinterpret_cast<void **> (&pScheduler) );

if (FAILED(hr))
{
wprintf(L"CoCreateInstance(IScheduler) failed with 0x%x.\n", hr);
goto cleanup;
}

hr = pScheduler->Connect(_bstr_t(ServerName));
if (FAILED(hr))
{
wprintf(L"Unable to connect to cluster %s. Failed with 0x%x.\n", ServerName, hr);
goto cleanup;
}
cleanup:
// Before exiting, release your instance of IScheduler.
if (pScheduler)
pScheduler->Release();

CoUninitialize();
}

3

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]