· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Ресурсы - продолжение...

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Янв 16, 2004 19:41:38

1990
В профайле


Дата: Янв 18, 2004 20:22:17
Правка

1990
внешние ресурсы имеют больший приоритет
Да, это так.
Но почему не хочешь использовать внешние файлы или тот же PEx или ResourceTuner?

Для использования Unicode используй макросы из Strings.mac, лежат на сайте.


Дата: Янв 18, 2004 23:23:34

IceStudent
Здоров - ты уже ученик. Почему не хочу использовать - чтобы самому научиться писать.


Дата: Янв 18, 2004 23:28:16
Правка

1990
ты уже ученик
Ага!

А у тебя, видимо, много времени? Что ж, я и сам люблю учиться всему, только не сейчас :(
Но я что-то видел дома по ресурсам — поищу, мож что и тебе пригодится для ентого…


Дата: Янв 29, 2004 19:40:55

Все оказалось иначе, чем я думал. Манифесты не конвертируется в unicode.
Очень это странно, поскольку в MSDN пишится, что в ресурсах ВСЕ строки хранятся в unicode. Но тем проще. Возможно, в некоторых программах надо будет использовать MANIFEST_RESOURCE_ID вместо CREATEPROCESS_MANIFEST_RESOURCE_ID.
    include        c:\MASM32\include\windows.inc    
    
    include     c:\MASM32\include\kernel32.inc
    includelib    kernel32.lib
    
RT_MANIFEST equ    24
MANIFEST_RESOURCE_ID    equ 2
CREATEPROCESS_MANIFEST_RESOURCE_ID    equ    1   
.DATA
manifest_file_lenght    equ    1024
filename        equ        "GrabStr.EXE"
exename            DB    filename,0
manifestname    DB    filename,".manifest2",0  ;; <- имя изменено!!

.CODE
start:
the     proc
LOCAL    ascii    [manifest_file_lenght]:byte
        invoke    BeginUpdateResource, offset exename, FALSE
        push    FALSE    ;;  for EndUpdateResource
        push    EAX    ;;  for EndUpdateResource
        .if    EAX
            mov    EBX, EAX
            invoke    CreateFile, offset manifestname,GENERIC_READ,0,0,OPEN_EXISTING,0,0
            .if    EAX != INVALID_HANDLE_VALUE
                push    EAX    ;;  file handle
                lea    ESI, [ascii]
                push    ecx    ;;  dummy value
                mov    ECX, ESP    ;;  lpNumberOfBytesRead
                invoke    ReadFile, EAX, ESI, manifest_file_lenght, ECX, 0
                pop    EAX    ;;   NumberOfBytesRead
                .if    EAX
                    invoke    UpdateResource,    EBX, RT_MANIFEST, CREATEPROCESS_MANIFEST_RESOURCE_ID,\
                                            LANG_NEUTRAL, ESI, EAX
                .endif
                call    CloseHandle  ;;  parameter is already on stack
            .endif
        .endif
        call    EndUpdateResource  ;;  parameters are already on stack
        invoke    ExitProcess, EAX
the        endp
end    start 

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.258