Michael Haephrati Ответов: 0

Как сделать так, чтобы исполняемый файл рабочего стола windows запускался на windows server 2012


Когда я использую

ATLENSURE_SUCCEEDED


используется С в коде, скомпилированный двоичный файл (.exe) не будет работать на Windows Server 2012. Это затрудняет тестирование на арендованных виртуальных настольных компьютерах, поскольку все виртуальные рабочие столы на самом деле являются машинами с Windows Server 2012, а не какой-либо настольной ОС Windows. В чем может быть причина и как ее можно исправить, либо внесением изменений в код, либо какой-либо предварительной установкой на виртуальный сервер. Ошибка заключается в следующем:
Цитата:
Выражение: __atl_condVal - ошибка отладки утверждения!

Просто чтобы быть ясным, один и тот же exe отлично работает на любой версии настольной ОС Windows от 7 до 10, но терпит неудачу с этой ошибкой на Windows Server 2012.

Что я уже пробовал:

Вообще говоря, я тестировал один и тот же exe-файл на настольных версиях Windows и на Windows Server. Я проверил, что нет никаких библиотек времени выполнения или отладочных библиотек, отсутствующих.

Jochen Arndt

Какая функция была вызвана, для которой возвращаемое значение передается в функцию ATLENSURE_SUCCEEDED()?

Какова ценность этого HRESULT?

Michael Haephrati

HRESULT hr = ::CoInitializeSecurity(
НУЛЕВОЙ,
-1,
НУЛЕВОЙ,
НУЛЕВОЙ,
RPC_C_AUTHN_LEVEL_DEFAULT,
RPC_C_IMP_LEVEL_IMPERSONATE,
НУЛЕВОЙ,
EOAC_NONE,
НУЛЕВОЙ);

ATLENSURE_SUCCEEDED(hr);

Richard MacCutchan

Вы все еще не дали нам код ошибки.

Richard MacCutchan

На догадку (глядя на Функция CoInitializeSecurity (COM)[^]) вам нужно значение для первого параметра.

Michael Haephrati

Я не могу получить код ошибки, потому что когда я запускаю исполняемый файл на любой настольной ОС Windows, он никогда не выходит из строя, однако когда я запускаю его на сервере, он падает, и поскольку у меня нет установленной IDE, я не могу получить код ошибки.

Michael Haephrati

Что решило проблему, так это удаление этой строки
ATLENSURE_SUCCEEDED(hr);

0 Ответов