Как сделать так, чтобы исполняемый файл рабочего стола 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);