Связывание объектов MASM с объектами C дает неверные результаты

Здесь объясняется разница между ними. Но то, что не было объяснено, заключается в том, что <<include>> и <<extend>> просто не должны использоваться вообще.

Если вы читаете Bittner / Spence, вы знаете, что варианты использования - это синтез, а не анализ. Повторное использование прецедентов - это вздор. Это ясно показывает, что вы неправильно нарушили свой домен. Добавленная стоимость должна быть уникальной как таковой. Единственное повторное использование добавленной стоимости, которую я знаю, - это франшиза. Так что, если вы в бизнесе бургер, хорошо. Но везде ваша задача как BA - попытаться найти USP. И это должно быть представлено в хороших вариантах использования.

Всякий раз, когда я вижу людей, использующих одно из этих отношений, это когда они пытаются выполнять функциональную декомпозицию. И это просто неправильно.

Проще говоря: если вы можете без колебаний ответить на своего босса «Я сделал ...», тогда «...» - ваш прецедент, так как вы получили деньги за то, что делаете Это. (Это также ясно укажет на то, что «логин» вообще не является вариантом использования.)

В этом отношении поиск самостоятельных вариантов использования, которые включены или продлевают другие варианты использования, очень маловероятен. В конце концов, вы можете использовать <<extend>>, чтобы показать, что ваша система является опциональной, т. Е. Какая-то схема лицензирования, которая позволяет включать варианты использования некоторых лицензий или опускать их. Но еще - просто избегайте их.

0
задан Crazy Coder 2 March 2019 в 10:38
поделиться

1 ответ

Директива PROC ищет в стеке аргументы даже при использовании ML64.exe. Но «Соглашение о вызовах Microsoft x64» передает аргументы в регистрах. Вы можете сохранить регистры в процедуре в так называемом теневом пространстве или - лучше - работать напрямую с регистрами:

intadd PROC
    mov eax, ecx
    add eax, edx
    ret
intadd ENDP

Кстати: DWORD эквивалентно unsigned int. Итак, адаптируйте строку формата: printf("%u", intadd(1,1));. Или используйте тип C int в файле C.

0
ответ дан rkhb 2 March 2019 в 10:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: