не работает GetModuleFileNameA

Тема в разделе "WASM.BEGINNERS", создана пользователем xchg, 11 авг 2006.

  1. xchg

    xchg New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2006
    Сообщения:
    34
    Адрес:
    Russia
    при запуске создается файл в Temp и запускается
    чтобы узнать свое имя используется:

    Код (Text):
    1.         push PAGE_READWRITE
    2.     push MEM_RESERVE or MEM_COMMIT
    3.     push 256
    4.     push NULL
    5.     call [ebp+_VirtualAlloc]       
    6.     mov dword ptr [ebp+_OwnFileName],eax
    7.    
    8.     push 255
    9.     push eax
    10.     push 0
    11.     call [ebp+_GetModuleFileNameA]
    когда файл запускается в папке Temp буфер пуст
    когда запускаю в других папках все нормально
     
  2. xchg

    xchg New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2006
    Сообщения:
    34
    Адрес:
    Russia
    пардон, господа)
    все работает
    оказывается ошибка в другом
    GetModuleFileNameA выдает путь в виде c:\docume~1\... и т.д.
    а функция GetTempPathA c:\documents and settings\... и т.д.
    и lstrcmpiA которая потом сравнивает пути естественно показывает неравно)

    Можно ли сделать так чтоб они давали одинаковый результат?
     
  3. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Код (Text):
    1. The GetLongPathName function converts the specified path to its long form. If no long path is
    2. found, this function simply returns the specified name.
    3.  
    4.  
    5. DWORD GetLongPathName(
    6.   LPCTSTR lpszShortPath,
    7.   LPTSTR lpszLongPath,
    8.   DWORD cchBuffer
    9. );