Код (Text): mov eax,infile_.lpstrFile push ebx xor ebx,ebx mov bx,infile_.nFileOffset add eax,ebx pop ebx ;infile_ has type OPENFILENAME Здрасте, помогите плз, вот работаю со структурой OPENFILENAME и есть пример, который вытаскивает имя файла из полного пути, но я в него что-то не въезжаю( я прочел на MSDN, что infile_.nFileOffset содержет позицию начала имени файла(выбранного из диалога), infile_.lpstrFile содержет полный путь к файлу, так как же путем сложения строки с числом получается вырезанное имя файла из полного пути. я недавно учу асм, и еще туплю когда вижу такие замашки. в чем фокус?
А что здесь непонятного? Указатель на строку, содержащую полный путь к файлу, складывается со смещением до непосредственно имени файла. В результате получается указатель на имя файла(минуя предшествующий путь). ps: что за манера обзывать топики так многозвучно?
Попробую чуть-чуть подробнее объяснить. Хотя mathio все правильно сказал. nFileOffset - определяет сдвиг (основанный на нуле) от начала пути на имени файла в строке, на которую указывает параметр lpstrFile. К примеру, если lpstrFile указывает на следующую строку, "c:\dir1\dir2\file.ext", то этот параметр равен 13, что обозначает сдвиг строки "file.ext" от начала параметра lpstrFile. Код (Text): mov eax,infile_.lpstrFile ; в еах указатель на строку с полным именем. Пример: "C:\WINDOWS\system32\calc.exe" Пусть он будет равен 402000 push ebx xor ebx,ebx mov bx,infile_.nFileOffset ; в ебх сдвиг до собственного имени файла = 20 = 14h add eax,ebx ; к указателю на начало строки прибавляешь сдвиг (длину пути через все папки) и получаешь указатель на собственно имя файла = 402014 pop ebx Вот здесь хорошо написано про структуру OPENFILENAME http://www.firststeps.ru/mfc/steps/r.php?140 И главное, на русском.
что не нравиться? с чем проблема, то и название. Хотя спс за ответ, немного не правильно перевел с МСДН( а так теперь все ясно. спс. Пойду перечитаю адрисацию,а то стыдный косяк вышел( Sturgeon, спс за помощь
что не нравиться? с чем проблема, то и название. Не нравится то, что новые люди, приходя на форум, плодят однотипные топики в несметном количестве. И вот после вас придут следующие и бегло просмотря названия топиков создадут свой "АДД" и зададут там однотипный же вопрос. Читаем вдумчиво https://www.wasm.ru/forum/viewtopic.php?id=17962
Будте уверенны, что задам еще здесь не 1 десяток вопросов. Не хотелось бы ругаться, но как смог так и сформулировал. Не нравиться тема не заходите! Ведь я не назвал тему "ВСЕ ВСЕ БЕГИТЕ ПОМОГАЙТЕ МНЕ У МЕНЯ ВСЕ НЕ РАБОТАЕТ!" Ну извините, что я такой недальновидный, так уж природа распорядилась... Как хорошо, что вы, в первый месяц опыта программирования, научились задавать дальновидные, нетривиальные вопросы. Надеюсь дотянуться до вас когда разберусь с азами асма.