Вопрос

In my program I call the GetModuleFileName function from the Windows API. The function tells me the path of the running .EXE file.

On Windows XP machines the string (szSrc) is not null-terminated according to the MSDN.

invoke GetModuleFileName,NULL,szSrc,255

How can I null-terminate it?

Это было полезно?

Решение

You need to add a zero to your variable at the end.

.data
szSrc db "Your string", 0

If you need to do it at runtime, you need to get the length of your variable (szSrc), and then you could write something like this:

lea eax, szSrc
mov byte ptr [eax+szSrcLen], 0

Note : it is important to provide a valid length. If you don't know the correct string length then it will be impossible to make a null string.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top