У меня есть простая функция, которая просто возвращает логическое значение (прямо сейчас для возврата true). Я пытаюсь написать функцию сборки, которая будет ее вызывать, и перейти на основе возвращаемого значения._stdcall function return 0xCCCCCC01
К сожалению, моя функция возвращает 0xCCCCCC01 вместо ожидаемого 0x01. Это какая-то скрытая функция stdcall?
Покажите свою функцию и прочитайте ее возвращаемое значение. (Я уверен, что вы поняли, что 0x01 - это LSB значения, которое вы получаете, а CCCC ... это то, что VS устанавливает неинициализированную память до тех пор, как я знаю, поэтому я уверен, что вы только читаете ее неверно.) – us2012
Иногда самый простой способ сделать это - обмануть: написать функцию в C и либо компилировать сборку сборки, либо разобрать результат. –
Я на самом деле просто посмотрел на код, сгенерированный для функции. Оказывается, булевы хранятся в AL, а не EAX. Это объясняет, почему нижние биты установлены правильно. –