鱼C论坛

 找回密码
 立即注册
查看: 2200|回复: 3

用RadASM编译win32程序,我想加一个图标,为何没有反应!

[复制链接]
发表于 2013-5-30 02:05:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 属専色灰 于 2013-6-17 22:23 编辑

为何我应用程序的左上角木有图标??还有,就算我把这个大头的脸图标从工程目录移除,可是编译出来的程序他还是大头的脸
无标题.jpg
asm代码如下:

  1.                 .386
  2.                 .model        flat,stdcall
  3.                 option  casemap:none
  4.                
  5. include                windows.inc
  6. include                user32.inc
  7. includelib        user32.lib
  8. include                kernel32.inc
  9. includelib        kernel32.lib


  10. ICO_BIG                equ                1000h

  11.                 .data?
  12. hInstance        dd        ?
  13. hWinMain        dd        ?
  14. hIcoBig                dd        ?



  15. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  16. ; 数据段
  17. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  18.                 .const
  19. szClassName        db        'Icon and Cursor Example',0
  20. szCursorFile        db        '1.ani',0
  21.                 .code
  22. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  23. _Quit                proc

  24.                 invoke        DestroyWindow,hWinMain
  25.                 invoke        PostQuitMessage,NULL
  26.                 ret

  27. _Quit                endp
  28. _ProcWinMain        proc        uses ebx edi esi hWnd,uMsg,wParam,lParam

  29.                 mov        eax,uMsg
  30. ;********************************************************************
  31.                 .if        eax ==        WM_CREATE
  32.                         invoke        LoadIcon,hInstance,ICO_BIG        
  33.                         mov        hIcoBig,eax
  34.                 ;        invoke        SendMessage,hWnd,WM_COMMAND,ICO_BIG,NULL
  35.                         invoke        SendMessage,hWnd,WM_SETICON,ICO_BIG,hIcoBig
  36.                         
  37.                 .elseif        eax ==        WM_CLOSE
  38.                         call        _Quit
  39.                 .else
  40.                         invoke        DefWindowProc,hWnd,uMsg,wParam,lParam
  41.                         ret
  42.                 .endif
  43.                 xor        eax,eax
  44.                 ret

  45. _ProcWinMain        endp
  46. _WinMain        proc
  47.                 local        @stWndClass:WNDCLASSEX
  48.                 local        @stMsg:MSG

  49.                 invoke        GetModuleHandle,NULL
  50.                 mov        hInstance,eax
  51.                
  52. ;********************************************************************
  53. ; 注册窗口类
  54. ;********************************************************************
  55.                 invoke        RtlZeroMemory,addr @stWndClass,sizeof @stWndClass
  56.                 push        hInstance
  57.                 pop        @stWndClass.hInstance
  58.                 mov        @stWndClass.cbSize,sizeof WNDCLASSEX
  59.                 mov        @stWndClass.style,CS_HREDRAW or CS_VREDRAW
  60.                 mov        @stWndClass.lpfnWndProc,offset _ProcWinMain
  61.                 mov        @stWndClass.hbrBackground,COLOR_WINDOW + 1
  62.                 mov        @stWndClass.lpszClassName,offset szClassName
  63.                 invoke        RegisterClassEx,addr @stWndClass
  64. ;********************************************************************
  65. ; 建立并显示窗口
  66. ;********************************************************************
  67.                 invoke        CreateWindowEx,WS_EX_CLIENTEDGE,\
  68.                         offset szClassName,offset szClassName,\
  69.                         WS_OVERLAPPEDWINDOW,\
  70.                         100,100,400,300,\
  71.                         NULL,NULL,hInstance,NULL
  72.                 mov        hWinMain,eax
  73.                 invoke        ShowWindow,hWinMain,SW_SHOWNORMAL
  74.                 invoke        UpdateWindow,hWinMain
  75. ;********************************************************************
  76. ; 消息循环
  77. ;********************************************************************
  78.                 .while        TRUE
  79.                         invoke        GetMessage,addr @stMsg,NULL,0,0
  80.                         .break        .if eax        == 0
  81.                         invoke        TranslateMessage,addr @stMsg
  82.                         invoke        DispatchMessage,addr @stMsg
  83.                 .endw
  84.                 ret

  85. _WinMain        endp
  86. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  87. start:
  88.                 call        _WinMain
  89.                 invoke        ExitProcess,NULL
  90. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  91.                 end        start
复制代码
rc代码如下:



  1. #define ICO_BIG 4096
  2. ICO_BIG ICON DISCARDABLE "Big.ico"
复制代码
ID看错了!不好意思


是不是我的RC代码写错了,还是哪里有问题?? win32_ico.zip (46.82 KB, 下载次数: 2)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-30 06:12:18 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-27 19:06:52 | 显示全部楼层
invoke        LoadIcon,hInstance,ICO_BIG        

42.                        mov        hIcoBig,eax

43.                ;        invoke        SendMessage,hWnd,WM_COMMAND,ICO_BIG,NULL

44.                        invoke        SendMessage,hWnd,WM_SETICON,ICO_BIG,hIcoBi
改成:
invoke  LoadIcon,hInstance,ICO_BIG
invoke  SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-28 13:24:35 | 显示全部楼层
哈哈~ID不一样~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 11:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表