Я пытаюсь запустить приложение проверяющей стороны WIF на общем узле. Они не установят для параметра IIS LoadUserProfile значение true, поэтому я получаю следующее сообщение об ошибке:
Сообщение: операция защиты данных не удалась. Это могло быть вызвано тем, что профиль пользователя не загружен для контекста пользователя текущего потока, что может иметь место, когда поток олицетворяет себя. ExceptionStackTrace: в System.Security.Cryptography.ProtectedData.Protect (Byte [] userData, Byte [] optionalEntropy, DataProtectionScope scope) в Microsoft.IdentityModel.Web.ProtectedDataCookieTransform. else ... но я не смог найти способ сделать это в C, так как определенный (MACRO) оператор препроцессора работает только ...
Я хотел бы написать код на C примерно так :
if(defined(MACRO)) ... else ...но я не смог найти способ сделать это в C , так как определенный (MACRO) препроцессорный оператор работает только внутри # if. Есть ли способ сделать это?
Что мне действительно нравится делать, так это писать:
ASSERT(UART, var >= 0);где
#define ASSERT(NAME, TEST) \ do { \ if (defined(NAME) && !(TEST)) \ printf("Assert failed"); \ } while(0), таким образом, я мог бы включить проверку ASSERT, когда макрос определен, и если он не определен, тогда утверждения не должны проверяться. Если вы попытаетесь это сделать, то получите:
implicit declaration of function `defined', что вполне понятно, поскольку компилятор GCC не находит оператор препроцессора
defined ()
.