Завершить нулем строку в 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

Примечание: важно указать допустимую длину.., если вы не знаете правильную длину строки, будет невозможно создать пустую строку.

Другие вопросы по тегам