2013-09-26 2 views
0

В моей программе я вызываю функцию GetModuleFileName из Windows Api. Функция сообщает мне путь запуска * .exe.Null-terminate string в MASM/GetModuleFileName

На компьютерах под управлением Windows XP строка (szSrc) не имеет нулевой последовательности в соответствии с MSDN.

invoke GetModuleFileName,NULL,szSrc,255 

Как я могу аннулировать его?

ответ

0

Вам нужно добавить ноль в переменную в конце

.data 
szSrc db "Your string",0 

, если вам нужно сделать это на время выполнения вы должны получить длину переменной (szSrc), то вы можете написать Somthing как это:

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

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