Помогите, пожалуйста разобраться с функцией из setup.inx. Что она делает? В частности не понимаю строки: local_number2 = &local_string3; local_number1 = *local_number2; Можно ли где нибудь прочитать про синтаксис языка, на котором пишутся подобные файлы? @0000BA1A:0022 function NUMBER function_13(local_string1) @0000BA1A NUMBER local_number1, local_number2, local_number3; @0000BA1A STRING local_string2, local_string3; @0000BA1A @0000BA1A begin @0000BA23:0029 StrSub(local_string2, local_string1, 0, 1); @0000BA37:0021 StrLength(local_string1); @0000BA40:0006 local_number3 = LASTRESULT; @0000BA4A:000A local_number3 = (local_number3 > 0); @0000BA59:0004 if(local_number3) then // ref index: 1 @0000BA65:0021 StrLength(local_string1); @0000BA6E:0006 local_number3 = LASTRESULT; @0000BA78:0029 StrSub(local_string1, local_string1, 1, local_number3); @0000BA8A:0006 endif; @0000BA8A:0006 label_ba8a: @0000BA8C:0006 local_string3 = local_string2; @0000BA96:001A local_number2 = &local_string3; @0000BAA0:001B local_number1 = *local_number2; @0000BAAA:0027 // return coming @0000BAAE:0023 return local_number1; @0000BAB5:0026 end; // checksum: 39d2d
local_number'ы там DWORD'ы, так что полагаю Код (Text): local_number2 = &local_string3; == ULONG local_number2 = (ULONG)local_string3; т.е. в local_number2 - адрес строки Код (Text): local_number1 = *local_number2; == ULONG local_number1 = *(ULONG*)local_number2; Т.о. в local_number1 оказываются первые четыре символа local_string3.
А синтаксис скриптов Install Shield'а похож как мне кажется на VB и всякие скриптовые языки... Инфу по нему нужно искать у производителя.
У меня оказывается есть хелп от старого Install Shield'а, там и описание скриптового языка, давай мыло - вышлю.
я в c/c++ (здесь что-то подобное) не разбираюсь, но по-моему local_number2=&local_string3 то же, что и mov local_number2,offset local_string3 А вот local_number1 = *local_number2 странно, но все же local_number1 = local_number2