Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

11.02.2008, 00:02
|
|
Познающий
Регистрация: 20.12.2007
Сообщений: 36
Провел на форуме: 71113
Репутация:
20
|
|
так ничего и не удалось разобрать самому. могу разве что сослаться но постоянную смену редакторов ресурсов каждым из которых двигала мания величия в виде вставки своих копирайтов в коментах и юзанием хз каких библиотек. вообщем на данный момент остановился на ResEd. поскольку у мене не получилось самому то остается один очень надежный вариант. ткните меня носом в правильны ответ.
вот полный текст и программы и ресурсов.
Код:
.386
.model flat,stdcall
option casemap:none
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
;DlgName db "MyDialog",0
AppName db "First",0
.data?
hInstance HINSTANCE ?
.const
IDM_EXIT equ 32003
IDD_DLG2 equ 1000
IDC_RED1 equ 1001
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam, hInstance, IDD_DLG2, NULL, ADDR DlgProc, NULL
invoke ExitProcess,eax
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg==WM_INITDIALOG
invoke GetDlgItem, hWnd, IDC_RED1
invoke SetFocus,eax
.ELSEIF uMsg==WM_CLOSE
invoke SendMessage, hWnd, WM_COMMAND, IDM_EXIT, 0
.ENDIF
mov eax,TRUE
ret
DlgProc endp
end start
Код:
#define IDD_DLG2 1000
#define IDC_RED1 1001
IDD_DLG2 DIALOGEX 5,5,65,13
CAPTION "IDD_DLG"
FONT 10,"MS Sans Serif",400,0,204
STYLE 0x10CF0000
BEGIN
CONTROL "IDC_RED",IDC_RED1,"RichEdit20A",0x50010000,1,1,63,11,0x00000200
END
|
|
|

11.02.2008, 00:35
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
Сразу приношу извенения я только начал изучать языки програмирования не считая скриптов. Решил начать с асемблера.
Посоветте с чего мне начать? где скачать програмное обеспечение для написания программ на асемблере?
я скачал с http://softok.org/coding/debug/13111prog.html Turbo Assembler Shell v.3.00
пробывал запустить простенький код
Код:
.data
msgtext db "Hello, WORLD", 0h
msgcap db "It is ASM!!! =)", 0h
.code
start:
INVOKE MessageBoxA, 0 offset msgtext, offset msgcap, 0
end start
конечно же неполучилось в ошибке пишут
Оut-file not found
какого выходного файла нету я понять немогу. вроде перед запуском проект сохранил.
посоветте пожалусто чтонибть для совсем зелёных. заранее благодарен
|
|
|

11.02.2008, 02:26
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
ZET36
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg==WM_INITDIALOG
invoke GetDlgItem, hWnd, IDC_RED1
invoke SetFocus,eax
.ELSEIF uMsg==WM_CLOSE
invoke EndDialog, hWndn, 0
.ENDIF
xor eax, eax
ret
DlgProc endp
Оконная процедура должна возвращать НОЛЬ. + по событию WM_CLOSE закрываем диалог.
CONTROL "IDC_RED",IDC_RED1,"RichEdit20A",0x50010000,1,1,63 ,11,0x00000200 - тут что-то неправильно!!!
Для примера попробуй заменить на
CONTROL "IDC_RED",IDC_RED1,"edit",0,1,1,63,11
Софт для асма бери на WWW.WASM.RU -> предпочтительно MASM or FASM.
Последний раз редактировалось GlOFF; 11.02.2008 в 02:34..
|
|
|

11.02.2008, 12:55
|
|
Познающий
Регистрация: 20.12.2007
Сообщений: 36
Провел на форуме: 71113
Репутация:
20
|
|
ZET36
думаю для совсем зеленых подойдет вот этот вариант. если что то непонятно могу откоментировать. вот тут прямая ссылка на MASM. в нем я компилировал чего и вам желаю. http://wasm.ru/baixado.php?mode=tool&id=48
Код:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\windows.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
msgtext db "Hello, WORLD", 0h
msgcap db "It is ASM!!! =)", 0h
.code
start:
invoke MessageBox, NULL, addr msgtext, addr msgcap, MB_OK
invoke ExitProcess, NULL
end start
GlOFF
хм.. где же в листинге вы нашли процедуру окна? я наконецто по лазил под отладчиком и наткнулся на то что при вызове диалоговой процедуры сначала ищется ресурс, если он не находится, то и не происходит вызова DialogBoxParam что и происходит у меня. вообщем посмотрел у Iczelion'a и нашел что у него имя ресурса задается ASCI-zero строкой. вообщем это внесло еще больше сумятицы в то что вы сказали что так нельзя. вы не могли бы довести проект до рабочего состояния, если вас не затруднит?
|
|
|

11.02.2008, 13:14
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
TruPAC Вот так попробуй компильнуть ->
PHP код:
.386
.model flat,stdcall
option casemap:none
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
AppName db "First",0
.data?
hInstance HINSTANCE ?
.const
IDM_EXIT equ 32003
IDD_DLG2 equ 1000
IDC_RED1 equ 1001
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam, hInstance, IDD_DLG2, NULL, ADDR DlgProc, NULL
invoke ExitProcess,eax
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg==WM_INITDIALOG
invoke GetDlgItem, hWnd, IDC_RED1
invoke SetFocus,eax
.ELSEIF uMsg==WM_CLOSE
invoke EndDialog, hWndn, 0
.ENDIF
xor eax, eax
ret
DlgProc endp
end start
+
PHP код:
#define IDD_DLG2 1000
#define IDC_RED1 1001
IDD_DLG2 DIALOGEX 5,5,65,13
CAPTION "IDD_DLG"
FONT 10,"MS Sans Serif"
STYLE 0x10CF0000
BEGIN
CONTROL "IDC_RED",IDC_RED1,"edit",0,1,1,63,11
END
TruPAC DlgProc - оконная\диалоговая процедура, обслуживает сообщения приходящие к данному диалогу. Просто щас сравни листинги и найди что изменилось.
|
|
|

11.02.2008, 15:43
|
|
Познающий
Регистрация: 20.12.2007
Сообщений: 36
Провел на форуме: 71113
Репутация:
20
|
|
ё маё... ну сколько ж можно... и так тоже не работает. вроде бы все нормально - проверял на чужих исходниках и все прекрасно собирается, а тут нет. у вас это точно собирается? мб ошибка не только у меня? не обижайтесь, а вдруг? вы можете приатачить файлы? я уже просто с ума схожу - 6 дней возни на стенке кашей и толку 0.
Ps
я всегда различал оконную и диалоговую процедуры.
|
|
|

11.02.2008, 18:02
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
TruPAC Вот мой рабочий\компилируемый вариант ->
http://webfile.ru/1737398
|
|
|

11.02.2008, 18:19
|
|
Познающий
Регистрация: 20.12.2007
Сообщений: 36
Провел на форуме: 71113
Репутация:
20
|
|
GlOFF
огромное спасибо! оказывается ошибка была в том что по какимто причинам мой линкер собирал новый вариант в папку общих документов и вместо того чтобы получить новый exe я работал со старым. сейчас я непременно посмотрю ваш вариант.
|
|
|

12.02.2008, 13:13
|
|
Новичок
Регистрация: 22.09.2007
Сообщений: 9
Провел на форуме: 312775
Репутация:
25
|
|
гуру и не гуру,дайте пожалуйста консольный пример "Hello, Wolrd" на асме,а то обыскался уже. 
|
|
|

12.02.2008, 13:26
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме: 1777536
Репутация:
932
|
|
wasm.ru/article.php?article=1022006
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|