Завершить нулем строку в MASM / GetModuleFileName
В моей программе я вызываю функцию GetModuleFileName из Windows Api. Функция сообщает мне путь к запущенному *.exe.
На компьютерах с Windows XP строка (szSrc) не заканчивается нулем в соответствии с MSDN.
invoke GetModuleFileName,NULL,szSrc,255
Как я могу обнулить его?
1 ответ
Решение
Вам нужно добавить ноль к вашей переменной в конце
.data
szSrc db "Your string",0
если вам нужно сделать это во время выполнения, вам нужно получить длину вашей переменной (szSrc), тогда вы можете написать что-то вроде этого:
lea eax,szSrc
mov byte ptr [eax+szSrcLen],0
Примечание: важно указать допустимую длину.., если вы не знаете правильную длину строки, будет невозможно создать пустую строку.