Вывод MessageBox перед запуском основного кода FASM

Тема в разделе "WASM.BEGINNERS", создана пользователем Dj_SheLL, 22 май 2009.

  1. Dj_SheLL

    Dj_SheLL New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    4
    Помогите вставить в код программы простой мессаджбокс,любой.Я не пойму как это сделать.Кучу всего перепробывал.Чаще всего ФАСМ ругается на загрузку иконки в приложение.Нужно чтобы вначале появлялся мессаджбокс,а потом запускалась сама прога.

    Вот код программы http://upwap.ru/431232
    Это иконка программы http://upwap.ru/431240
    Всякие ресурсы для работы с OpenGL http://upwap.ru/431241
    INCLUDE-ы обновлённые http://upwap.ru/431244
     
  2. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    А в чем проблема? Добавляем код, правим точку входа, добавляем MessageBox в импорт, добавляем инструкцию call [MessageBoxA] в таблицу релокаций. Вроде бы все. Что именно не получается?
     
  3. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Ой, сначала написал, потом посмотрел, что исходный код есть.
     
  4. Dj_SheLL

    Dj_SheLL New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    4
    Там идёт с использованием OpenGL.
    Появляется ошибка на вот эту строку
    icon icon,icon_data,'..\fasmw\resources\icons\bitmaps.ico' где иконку подключаю.Вот.
    И...
    Использовал "FASM OpenGL tutorial от Tyler Durden'а"
     
  5. Dj_SheLL

    Dj_SheLL New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    4
    Я хочу сделать всё в одном экзешнике.Так то я запросто могу из одного файла сделать вызов другого с использованием мессаджабокса на ФАСМ-е.А нужно в одном.Вот как это сделать?Помогите!Заранее благодарен!!!
     
  6. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Ну, вот примерно так:

    Код (Text):
    1. matrixTextureSizeX equ 256                 ;?????? ???????? "???????" ?? ???????????
    2. matrixTextureSizeXDouble equ 256.0         ;?????? ???????? "???????" ?? ??????????? ? ???????????? ??????? double
    3. matrixTextureSizeY equ 512                 ;?????? ???????? "???????" ?? ?????????
    4. format PE GUI 4.0                          ;?????? exe ?????
    5.  
    6. entry start                                ;????? ????? ?????????
    7.  
    8. include 'E:\Delme\INCLUDE\INCLUDE\win32a.inc'
    9. include 'E:\Delme\INCLUDE\INCLUDE\opengl_const.inc'  ;???????? OpenGL
    10. include 'E:\Delme\INCLUDE\INCLUDE\opengl_macros.inc' ;? ????????
    11.  
    12. start:                                     ;?????? ?????????
    13.  push 0x0
    14.  push 0x0
    15.  push string
    16.  push 0x0
    17.  call [MessageBoxA]
    18.  
    19. xor ebx,ebx                                ;?????? ebx. ?.?. ?? ?? ?????????? API ??????????? ?? ????? ???????????? push ebx ?????? push 0, ??? ???????????
    20. invoke ShowCursor, ebx                      ;??????? ??????
    21.  
    22. push ebx
    23. push ebx
    24. push ebx
    25. push ebx                                   ;???????? ? ???? 4-? "0" ??? ????????? "CreateWindowEx"
    26.  
    27. invoke GetSystemMetrics,SM_CYSCREEN        ;??????? ??????? ?????????? ?? ?????????
    28. mov [screenHeight],eax                     ;???????? ??? ? ?????????? screenHeight
    29. push eax                                   ;???????? ??? ? ???? ??? ????????? "CreateWindowEx"
    30. invoke GetSystemMetrics,ebx                ;? ?? ???????????
    31. mov [screenWidth],eax                      ;???????? ??? ? ?????????? screenWidth
    32. push eax                                   ;? ? ????
    33.  
    34. fild dword [esp]                           ;???????? ??????????? ?????????? ?????? ?? ??????????? ? ?????????
    35.  
    36. fst [screenWidthDouble]
    37. fild dword [esp+4]                         ;???????? screenWidth ? ???????????? ??????? double
    38.  
    39. fst [screenHeightDouble]
    40. fdivp                                      ;???????? screenHeight ? ???????????? ??????? double
    41. fstp [ratio]                               ;???????? ??????????? ?????????? ? ?????????? ratio
    42.  
    43. invoke CreateWindowEx,WS_EX_TOPMOST,szClass,szTitle,WS_VISIBLE+WS_POPUP,ebx,ebx
    44. ;???????? ???? ???????? ? ????? ? ???????????????? ??????? "edit" (?.?. ??? ?????????????? ??????, ?? ??? ????????? ?????????? ?? ?? ??????? ????)
    45.  
    46. invoke GetDC,eax                           ;??????? ???????? ????
    47. xchg ebp,eax                               ;???????? ??? ? ebp
    48.  
    49. mov [pfd.dwFlags],PFD_DRAW_TO_WINDOW+PFD_SUPPORT_OPENGL+PFD_DOUBLEBUFFER
    50. ;?????????????? ?????????? ??????? ???????? OpenGL (????????? OpenGL ? ??????? ???????????)
    51.  
    52. mov [pfd.iPixelType],PFD_TYPE_RGBA         ;??? ???????? RedGreenBlueAlpha
    53. mov [pfd.cColorBits],32                    ;??????? ?????
    54. mov [pfd.dwLayerMask],PFD_MAIN_PLANE       ;????????? ???????????
    55. invoke ChoosePixelFormat,ebp,pfd           ;??????? ???
    56. invoke SetPixelFormat,ebp,eax,pfd          ;? ????????? ???
    57. invoke wglCreateContext,ebp                ;??????????? ???????? ???? ? ???????? OpenGL
    58. invoke wglMakeCurrent,ebp,eax              ;? ??????? ??? ???????
    59. invoke glEnable,GL_BLEND                   ;??????? ?????-??????????
    60.  
    61. invoke glBlendFunc,GL_SRC_ALPHA,GL_ONE     ;??????? ??? ????? ??????
    62. invoke glEnable,GL_COLOR_MATERIAL          ;??????? ????? ?????????? ???????? ? ?????? ???????
    63.  
    64. invoke CreateFont,-10,ebx,ebx,ebx,ebx,ebx,ebx,ebx,ebx,ebx,ebx,ebx,ebx,fontName
    65. ;???????? ????? ??? ??????? ????????? ? ??????? (???????? "10", ????????? ???????? ?? ????????? "0", ????? ????????? "Lucida Console")
    66.  
    67. invoke SelectObject,ebp,eax                ;??????? ????????? ?????? (?????) ??? ???????? ????????? ???? (ebp)
    68. invoke wglUseFontBitmapsA,ebp,ebx,256,ebx  ;??????????? ??????? ?? 0-?? ?? 256-?? ? ?????? ??????'??
    69.  
    70. invoke glTexImage2D,GL_TEXTURE_2D,ebx,3,matrixTextureSizeX,matrixTextureSizeY,ebx,GL_RGB,GL_UNSIGNED_BYTE,textureBlank
    71. ;???????? matrixTextureSizeXxmatrixTextureSizeYx24bpp ???????? ?? ?????? textureBlank (???????)
    72. invoke glTexParameteri,GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR
    73. ;????????? ?????? ???????? ??? ?????????? (linear)
    74. invoke glTexParameteri,GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR
    75. ;????????? ?????? ???????? ??? ?????????? (linear)
    76.  
    77. invoke glEnable,GL_TEXTURE_2D              ;??????? ???????????????
    78. invoke glHint,GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST
    79. ;??????? ????? ?????????? ????????????? ?????????????? (?????????)
    80.  
    81. mov edi,matrixStrokes                      ;?????????????? ????????? "?????" "???????"
    82. mov ecx,matrixMaxStrokes                   ;?????????? ???????? ? "??????"
    83. mov [currentOfsX],ebx                      ;??????? ??????? ???????? ?????????? "?"
    84. .matrixGenerate:                           ;?????????????? "???????"
    85. fld dword [currentOfsX]                    ;???????? ??????? ???????? ?????????? "?"
    86. fadd dword [ofsDelta]                      ;?? ???????? ofsDelta
    87. fstp dword [currentOfsX]                   ;??????? ??? ???????
    88. cmp dword [currentOfsX],matrixTextureSizeXDouble
    89. jna .notXOf                                ;???? ????? ?? ???????? ????????
    90. mov [currentOfsX],ebx
    91. .notXOf:                                   ;?? ???????
    92. mov eax,[currentOfsX]
    93. stosd                                      ;??????? ??? ? ?????? ????????? "?????" "???????"
    94. cdq                                        ;??????? edx ??? ???????
    95. add eax,edi
    96. rol eax,cl                                 ;?????????? ??????
    97. div [screenHeight]                         ;????? ?? ?????? ??????
    98. push edx
    99. fild dword [esp]
    100. fstp dword [esp]
    101. pop eax                                    ;??????????? ? ???????????? ?????? (? ?????)
    102. stosd                                      ;?????????? ????? ?????????? "Y"
    103. add ax,dx
    104. xor al,ah                                  ;? ????????? ????????? ?????? "??????"
    105. stosb                                      ;??????? ? ??? ????
    106. loop .matrixGenerate                       ;???-?-?-?????? ("? ???????, ?????? ????, ? ???????")
    107. .draw:                                     ;???????? ????
    108. invoke GetTickCount                        ;???????? ??????? ???????? ???????? ?????? ?????? Windows (??? ?????????????)
    109. cmp eax,[msec]                             ;??????? ??? ? ??????????? ?????????
    110. jz .draw                                   ;???? ??? ?? ?????????? ?? ????
    111. mov [msec],eax                             ;???? ???????? ?????????? ???????? ???
    112. invoke glClear,GL_COLOR_BUFFER_BIT         ;??????? ????? ??????
    113. invoke glDisable,GL_BLEND                  ;???????? ?????-??????????
    114. invoke glDisable,GL_TEXTURE_2D             ;???????? ???????????????
    115. invoke glMatrixMode,GL_PROJECTION          ;??????? ??? ?????????????? ??????? ????????????? ????????
    116. invoke glLoadIdentity                      ;??????? ??
    117.  
    118. glcall glOrtho,0.0,screenWidthDouble,screenHeightDouble,0.0,-1.0,1.0
    119. ;??????? ?? ?? ??????? ????????????? ????????
    120.  
    121. invoke glMatrixMode,GL_MODELVIEW           ;??????? ??? ?????????????? ??????? ???????????
    122. invoke glLoadIdentity                      ;??????? ??
    123. mov esi,matrixStrokes                      ;?????????? "?????" "???????"
    124. inc [currentChar]                          ;???????? ??????? ????????? ???????? ??????? "??????"
    125. .matrixShow:                               ;????????? "???????"
    126. mov [currentColor],ebx                     ;??????? ???????? ??????? ?????????? ????? ????????
    127. mov edi,matrixMaxCharsInStroke             ;?????????? ???????? ? ??????
    128. cmp [currentChar],charChangeFrequency      ;??????? ??????? ????????? ???????? ??????? "??????" ? ???????? ??? ?????????
    129. jna .notCharChange                         ;???? ?? ??????
    130. inc byte [esi+4+4]
    131. .notCharChange:                            ;????? ??????? ????????? ?????? "??????"
    132. .matrixShowStroke:                         ;????????? ????????? "??????" "???????"
    133. fld [currentColor]                         ;???????? ???? ???????? ???????
    134. fadd [colorDelta]                          ;?? colorDelta
    135. fstp [currentColor]                        ;??????? ???????
    136. invoke glColor3f,ebx,[currentColor],ebx    ;????????? ???
    137. cmp edi,1
    138. jnz .notLast                               ;???? ??? ??? ????????? ?????? (??????, ??? ??? ???? ??????? ? ???????? ???????)
    139. invoke glColor3f,0.4,1.0,0.7               ;1.0,0.0,0.0-??? ???????? ????? ??? "??????" ? "???????" ????????
    140.                                            ;1.0,1.5,1.7-?????? ? ?????
    141.                                            ;1.0,0.0,1.0-????? ??????????
    142.  
    143. .notLast:                                  ;????????? ???? ?????????? ??????? (????? ?????)
    144. invoke glRasterPos2fv,esi                  ;????????? ??????? ??????????? ?????? (???????)
    145. fld dword [esi+4]                          ;???????? ?????????? "X" (??? ??????????? ?????????? ???????)
    146. fadd dword [ofsDelta]                      ;?? ofsDelta
    147. fstp dword [esi+4]                         ;??????? ???????
    148. inc byte [esi+4+4]                         ;???????? ??????? ?????? "??????"
    149. cmp byte [esi+4+4],0ffh
    150. jb .charOverflow                           ;???? ?? ?????? 0ffh
    151. mov byte [esi+4+4],21h
    152. .charOverflow:                             ;?? ??????? ? ???? 21h (??? ??????? "!")
    153. xor eax,eax                                ;??????? eax
    154. mov al,[esi+4+4]                           ;? al ??????? ?????? ? "??????"
    155. invoke glCallList,eax                      ;????????? ???
    156. dec edi
    157. jnz .matrixShowStroke                      ;????????? ?? ????????? ???????? ? "??????"
    158. sub byte [esi+4+4],matrixMaxCharsInStroke  ;?????? ???????? ?????????? ??????? ? "??????" ? ???????? ????????
    159. fld dword [esi+4]                          ;???????? ?????????? "Y" ??????? "??????"
    160. fsub dword [movDelta]                      ;?? movDelta
    161. fstp dword [esi+4]                         ;??????? ???????
    162. push eax
    163. fld [screenHeightDouble]                   ;??????????? ????????? ?????? ?? ????????? ? ??????? double (8 ????)
    164. fstp dword [esp]                           ;? ?????? float (4 ?????) ? ???????? ? ?????
    165. pop eax                                    ;?????? ? eax
    166. cmp dword [esi+4],eax
    167. jng .yRight                                ;???? ?????????? "Y" ??????? "??????" ?????? ?????????? ?????? ?? ?????????
    168. mov dword [esi+4],ebx
    169. .yRight:                                   ;?? ??????? ??
    170. add esi,4+4+1                              ;???????? ? ????????? "??????"
    171. cmp esi,matrixStrokes+matrixStrokes.size
    172. jnz .matrixShow                            ;???? ?? ???? "???????"
    173. cmp [currentChar],charChangeFrequency
    174. jng .notZeroChar                           ;???? ???????????? ???????? ????????
    175. mov [currentChar],bl
    176. .notZeroChar:                              ;??????? ???
    177. invoke glEnable,GL_BLEND                   ;??????? ?????-??????????
    178. invoke glEnable,GL_TEXTURE_2D              ;??????? ???????????????
    179.  
    180. invoke glCopyTexImage2D,GL_TEXTURE_2D,ebx,GL_RGB,ebx,ebx,matrixTextureSizeX,matrixTextureSizeY,ebx
    181. ;????????? ????? ? ???????? matrixTextureSizeX*matrixTextureSizeY
    182.  
    183. invoke glClear,GL_COLOR_BUFFER_BIT         ;??????? ????? ??????
    184. invoke glMatrixMode,GL_PROJECTION          ;??????? ??? ?????????????? ??????? ????????????? ????????
    185. invoke glLoadIdentity                      ;??????? ??
    186. glcall gluPerspective,60.0,ratio,0.1,100.0 ;??????? ?? ?? ??????? ???????????, ?.?. ???????? ??????? ?? (?????????? ?????? glcall ?.?. ????????? ?????????? ? ???? 8 ??????)
    187. invoke glMatrixMode,GL_MODELVIEW           ;??????? ??? ?????????????? ??????? ???????????
    188. invoke glTranslatef,ebx,1.0,-7.0           ;????????? ??????? ?ybp (y=1.0)? ? ????? ?????? (z=-6.0)
    189. invoke glRotatef,[theta],ebx,1.0,ebx       ;??????? ??????? ??????????? ?? ??????? ???????? (???????? ??? ??????? ????? ?? ???? theta ???????????? ???????? y)
    190.  
    191. invoke glInterleavedArrays,GL_T2F_N3F_V3F,ebx,mdlCube
    192. ;??????? ??????????? ???????? ?????????? ????????? (2 float'? ?? ?????????? ??????????), ???????? (?? 3 float'? ?? ???????) ? ?????? (3 float'? ?? ???????)
    193.  
    194. invoke glDrawArrays,GL_QUADS,ebx,24        ;???????? ????????? ?????? ?? 24 ?????????????, ??????? ? ???????????? ????? "0" (ebx)
    195. invoke SwapBuffers,ebp                     ;????????? ????? ?? ?????
    196. fld [theta]                                ;???????? ???????? ???? theta
    197. fadd [delta]                               ;???????? ??? ?? ???????? delta
    198. fstp [theta]                               ;? ??????? ???????
    199. invoke GetAsyncKeyState,VK_ESCAPE          ;???????? ?? ??????? ??????? ESC
    200. test eax,eax                               ;???? ??? ?? ??????
    201. jz .draw                                   ;?? ????????? ????
    202. invoke ExitProcess,ebx                     ;????? ?? ?????????
    203. charChangeFrequency=6                      ;?????????? ?????? ????? ??????? ?????????? ????????? ?????????? ??????? "???????" "???????"
    204. matrixMaxStrokes=400                       ;???????????? ?????????? "?????"
    205. matrixMaxCharsInStroke=20                  ;???????????? ?????????? ???????? ? "??????"
    206. ofsDelta dd 7.0                            ;?????????? ????? "Y" ???????????? ???????? "?????"
    207. movDelta dd 138.5                          ;?????????? ?? ??????? ????????????? "??????" ????? ?????? "??????" (?.?. ? ?????? ?????? "??????" ????)
    208. colorDelta dd 0.025                        ;???????? ?????????? ???????? ?????????? Green ??? ??????? ???????????? ??????? "??????"
    209. fontName db 'lucida console',0             ;??? bitmap ?????? (????? ????? ???????????? ?????????? ??????)
    210. delta dd 1.8                               ;???????? ?????????? ???? ????????
    211.  
    212. szTitle db 'Course work of student Kravchenko Cyril of group 07-?-??1 with use OpenGL',249
    213. ;????????? ????
    214.  
    215.  
    216. szClass db 'edit',0                        ;??? ????????????????? ?????? ????
    217.  
    218. mdlCube dd 1.0,0.0,0.0,0.0,1.0,-1.0,-3.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,-3.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,-1.0,1.0,1.0,0.0,0.0,0.0,0.0,-1.0,-1.0,-3.0,-1.0,0.0,1.0,0.0,0.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,0.0,0.0,-1.0,1.0,1.0,-1.0,1.0,0.0,0.0,0.0,-1.0,1.0,-3.0,-1.0,1.0,0.5,0.0,1.0,0.0,-1.0,1.0,-1.0,1.0,0.0,0.0,1.0,0.0,-1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,1.0,0.0,0.5,0.0,1.0,0.0,1.0,1.0,-1.0,0.0,0.5,0.0,-1.0,0.0,-1.0,-3.0,-1.0,1.0,0.5,0.0,-1.0,0.0,1.0,-3.0,-1.0,1.0,0.0,0.0,-1.0,0.0,1.0,-3.0,1.0,0.0,0.0,0.0,-1.0,0.0,-1.0,-3.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,-3.0,-1.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,-1.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,-3.0,1.0,1.0,0.0,-1.0,0.0,0.0,-1.0,-3.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,-3.0,1.0,0.0,1.0,-1.0,0.0,0.0,-1.0,1.0,1.0,1.0,1.0,-1.0,0.0,0.0,-1.0,1.0,-1.0
    219. ;????????? ?????? ??????????? ??? ? ??????? T2F_N3F_V3F
    220.  
    221. data import
    222. include 'E:\Delme\include\include\imports.inc'
    223. end data                                   ;??????? ???? ? ????????? ???????
    224. data resource
    225. directory RT_ICON,icons,RT_GROUP_ICON,group_icons
    226. resource icons,1,LANG_NEUTRAL,icon_data
    227. resource group_icons,1,LANG_NEUTRAL,icon
    228. icon icon,icon_data,'E:\Delme\resources\resources\icons\bitmaps.ico'
    229. end data                                   ;???????? ????????
    230. msec dd ?                                  ;??????? ????? ???????
    231. theta dd ?                                 ;???? ????????
    232. ratio dq ?                                 ;??????????? ?????????? ?????? ?? ??????????? ? ?????????
    233. pfd PIXELFORMATDESCRIPTOR                  ;?????????? ??????????? ???????
    234. screenWidth dd ?                           ;?????????? ?????? ?? ???????????
    235. screenHeight dd ?                          ;?????????? ?????? ?? ?????????
    236. screenWidthDouble dq ?                     ;?????????? ?????? ?? ??????????? ? ??????? double
    237. screenHeightDouble dq ?                    ;?????????? ?????? ?? ????????? ? ??????? double
    238. currentColor dd ?                          ;??????? ???????? ???????? ?????????? Green (???????????? ??? ?????????????)
    239. currentChar db ?                           ;??????? ?????? "??????" (???????????? ??? ?????????????)
    240. currentOfsX dd ?                           ;??????? ???????? ?????????? "X" "??????" (???????????? ??? ?????????????)
    241. rndSeed dd ?                               ;"?????" ?????????? ????????? ?????
    242. matrixStrokes rb matrixMaxStrokes*(4+4+1)  ;?????? "?????" ??????? ? ??????? (?????????? "X", ?????????? "Y", ????????? ?????? "??????")
    243. .size=$-matrixStrokes                      ;??? ??????
    244. string: db "I want to steal this Kirill's work", 0x0
    245. textureBlank rb matrixTextureSizeX*matrixTextureSizeY*3
    246. ;?????? ???????? ???????? matrixTextureSizeX*matrixTextureSizeY*3 (RGB)\
    Комменты побились, ну да черт с ними. Пути, естественно, надо исправить на свои.

    Не совсем понял что и как, но, вроде, файл исполняемый один получился.

    P.S. В WASM.BESGINNERS есть специальная тема для студентов.
     
  7. Dj_SheLL

    Dj_SheLL New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    4
    Извините!!!Не знал :)
    Огромное спасибо!!!
    Это я и хотел,просто не ясно выразился :)
    Ещё раз большушее спасибо! :)