Конвертировать _Asembly в VARIANT - PullRequest
1 голос
/ 13 июня 2019

У меня есть приложение для размещения CLR, которое я пытаюсь сделать так, чтобы оно поддерживало WPF.

Я попытался установить значение поля в _Assembly, но проблема в том, что мне нужно передать переменнуютипа VARIANT.

Это код C #, который я пытаюсь преобразовать в C ++:

Assembly assembly = Assembly.Load(data);
...
field.SetValue(null, assembly); // I'm attempting to do that in C++

Вот что я сделал:

_AssemblyPtr pAssembly = NULL;

...

hr = AppDomain->Load_3(sa, &pAssembly);

...

CComVariant obj;
BindingFlags bFlags = (BindingFlags)(BindingFlags_SetField | BindingFlags_NonPublic | BindingFlags_Static);
hr = fieldInfo->SetValue(obj, CComVariant(pAssembly), bFlags, NULL, NULL);

Ошибка на fieldInfo->SetValue и более точная на втором аргументе, который должен иметь тип VARIANT.Ошибка: hr = E_INVALIDARG One or more arguments are invalid.

Если я установлю второй аргумент на CComVariant(NULL), он не потерпит неудачу, но мне нужно поставить туда _Assembly.

Любая идея, как мне поступитьс проблемой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...