Попробуйте вызывать не макрос, адаптирующий функции под текущий тип строки (LoadMenuIndirect), а непосредственно функции api (LoadMenuIndirectA...
С выравниванием все просто. Адрес следующей структуры должен всегда начинаться со значения кратного 4 (тоже относится и к полю после строки...
Тогда могу посоветовать либо найти этот блок памяти в отладчике и посмотреть на его содержимое перед вызовом функции LoadMenuIndirect, либо...
Для mov может не уместиться в 7-байтовый опкод. Зависит от базового адреса. И тогда mov будет 9 байтовый. Тогда как lea для 64-бит будет 7...
Очень похоже на то, что макрос TEXT у вас не создаёт Unicode строку из wchar_t. А в структурах, даже при вызове LoadMenuIndirectA, должны быть...
Так картинки по коду на C++ я не делал. Там больше пунктов, чем в примере на ASM. Это сможете увидеть когда запустите у себя мой код. Будет точно...
Посмотреть на картинку и найти вот это на ней так сложно. Это строки 47 - 51 [ATTACH] Или откуда вы эти строки читаете? Я приводил уже 4...
Например вот так выглядит структура для создания меню изображённого ниже на скриншотах Поясняю. После каждого пункта меню первого уровня (File,...
Это выравнивание. Ну так возьмите пример. Соберите, изучите и пишите сами что-то подобное.
#include <windows.h> #include <stdio.h> #define MM_NEW_ITEM 1000 #define MM_EXIT_ITEM 1001 #define MM_HELP_ITEM 1002 char menuTemplate[1024];...
Вот именно. У вас ерунда. Я сказал, что вы присваиваете вот тут lpmti = (MENUEX_TEMPLATE_ITEM*)szDst;адрес конца строки как начало новой структуры...
szDst = (LPWSTR)(lpmti->szText); ... lpmti = (MENUEX_TEMPLATE_ITEM*)szDst; lpmti->dwHelpId = 0;Так получается вы обратились к Смещение...
Опечатка: for /l %l in (1,1,1) do @for /f "tokens=1,* delims=:" %a in ('findstr /n /r "^" temp.asm ^| findstr /r "^%l:"') do @echo %b [ATTACH]
for /l %l in (1,1,1) do @for /f "tokens=* delims=!" %a in ('findstr /n /r "^" temp.asm ^| findstr /r "^%l:"') do @echo %b А это не работает....
Ну у меня тоже вылетала пока я после File не добавил dd 0. Это странно, т.к. File уже выровнена на 4 байта и без dd. dd MFT_STRING ;...
А если под Windows использовать for ... (%1) do set ... && exit /b Для Linux тоже самое будет через команду head --lines=1
Нет. Можно создать полноценное меню. Возьмите мой пример и попробуйте. Его надо просто скормить fasmw. Потом можете скопировать строки со 198 по...
Если вам так хочется извращаться на C++, то это ваше дело. Но вот вам на FASM использование этой же функции. Все прекрасно работает. Проверил 4...
Больше сил потратишь на разыменовывание указателей. Куда проще сделать CreateMenu, а потом по его хэндлу InsertMenu/AppendMenu
Кажется вы потеряли суть разговора. В этой теме вкладывали исходники на fasm, которые демонстрируют работу с PE форматом. Автор темы показал как...
Имена участников (разделяйте запятой).