Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Точка входа

3.0K
27 января 2010 года
ctraus
91 / / 16.06.2006
Здравствуйте.
Есть простенькая прога на асме.
При запуске говорит что точка входа в MESSAGEBOXW не найдена в user32.dll.Tasm32.
Это моя первая попытка что то написать на x86 да еще с использованием API.
Код:
;директивы компоновщику для подключения библиотек
includelib c:\Tasm\LIB\IMPORT32.LIB
.386                                
.model  flat

extrn MessageBoxW:PROC

.data    

Ttl db "First ASSEMBLER program",0h
Msg db 'Hello, World!!!!',0h

.code

start:
    push 0h
    push offset Msg
    push offset Ttl
    push 0h
    call MessageBoxW
    push 0h
   
end     start
399
27 января 2010 года
KIV
432 / / 20.01.2009
Во-первых, где ExitProcess?
Во-вторых, если MessageBoxW, то надо не db, а du использовать (это в FASM, а TASM может и что-нить другое).
В-третьих, попробуй MessageBoxA и проверь правильность написания имён процедур и библиотек.
3.0K
27 января 2010 года
ctraus
91 / / 16.06.2006
Цитата: KIV
Во-первых, где ExitProcess?
Во-вторых, если MessageBoxW, то надо не db, а du использовать (это в FASM, а TASM может и что-нить другое).
В-третьих, попробуй MessageBoxA и проверь правильность написания имён процедур и библиотек.


ExitProcess ничего не меняет.был убран на время.
Msg db 'Hello, World!!!!',0h здесь du?
MessageBoxA та же ерунда абсолютно.
Если что то написать не правильно он орет про то что не найдено такое вообще.А тут только точка входа.

399
27 января 2010 года
KIV
432 / / 20.01.2009
Цитата:
Msg db 'Hello, World!!!!',0h здесь du?


Да, тут. Это конечно ситуации не изменит сейчас... Просто MessageBoxW - вывод сообщение в Unicode, а строка объявленная с помощью db в кодировке ANSI. Кстати, для du придется искать макрос т. к. насколько мне известно ассемблер нормально закодирует в Unicode только латиницу, т. к. её ANSI коды совпадают с Unicode.

А ExitProcess когда стоит (без MessageBox) нормально работает? не вылазит ошибок?

3.0K
27 января 2010 года
ctraus
91 / / 16.06.2006
Цитата: KIV

А ExitProcess когда стоит (без MessageBox) нормально работает? не вылазит ошибок?


Вылазит.Только на этот раз про kernel32 и опять точка входа(
Да может это важно у меня win 7.

57K
27 января 2010 года
=HiSER=
4 / / 27.01.2010
закинь IMPORT32.LIB, а то TASM есть, а либы нет. проверить не могу (
3.0K
27 января 2010 года
ctraus
91 / / 16.06.2006
http://www.sendspace.com/file/t9gy7z
Надеюсь это именно та библиотека,а то сам еле нашел
57K
28 января 2010 года
=HiSER=
4 / / 27.01.2010
Не правильно компилируешь. надо с параметром tasm32 /ml test.asm.
Иначе он не учитывает регистр. А для API MessageBoxW и MESSAGEBOXW это две разные функции.
Второй нету в user32.dll, по этому и пишет ошибку.
3.0K
28 января 2010 года
ctraus
91 / / 16.06.2006
Цитата: =HiSER=
Не правильно компилируешь. надо с параметром tasm32 /ml test.asm.
Иначе он не учитывает регистр. А для API MessageBoxW и MESSAGEBOXW это две разные функции.
Второй нету в user32.dll, по этому и пишет ошибку.



Вот спасибо!!
Я если честно думал,что если такого типа косяк будет он заругается еще на этапе компиляции.Ведь если левую функцию попробовать вызвать он ругается на это..

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог