покажи стили ListView,а то у тебя в исходниках только ListBox нашел,возможно одна из причин то что ты не указал LVS_REPORT в стилях ListView.
Код (Text): BEGIN CONTROL "",IDC_LSV1,"SysListView32",WS_CHILD|WS_VISIBLE|WS_TABSTOP|LVS_SORTDESCENDING|LVS_REPORT,0,0,528,353 END
при чом тут InitCommonControls когда всё это происходит в диалоговом окне и точнотакже в файле ресурсов описан LISTVIEW
при том что ListView,Tree view,Toolbar... описаны в comctl32.dll и чтобы система автоматом подгрузила эту dll у тебя в импорте должна быть хоть одна фунция из этой dll,ну или можешь юзать LoadLibrary,а InitCommonControls эта функция пустушка которая находится в comctl32.dll и предназначена только для того чтобы создать запись в импорте,а вообще почитай уроки Iczelion -a,там об этом хорошо написано.
функции библиотеки comctl32.dll у меня обьявлены внешними а насчёт InitCommonControls, что с ним что без него, одно и тоже
код- IP_LISTER.ASM Код (Text): ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« .486 ; create 32 bit code .model flat, stdcall ; 32 bit memory model option casemap :none ; case sensitive include IP_LISTER.inc ; local includes for this file .code start: ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« ; ------------------ ; set global values ; ------------------ mov hInstance, rv(GetModuleHandle, NULL) mov CommandLine, rv(GetCommandLine) mov hIcon, rv(LoadIcon,hInstance,500) mov hCursor, rv(LoadCursor,NULL,IDC_ARROW) mov sWid, rv(GetSystemMetrics,SM_CXSCREEN) mov sHgt, rv(GetSystemMetrics,SM_CYSCREEN) call Main invoke ExitProcess,eax ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« Main proc LOCAL Wwd:DWORD,Wht:DWORD,Wtx:DWORD,Wty:DWORD STRING szClassName,"ProStart_Class" ; -------------------------------------------- ; register class name for CreateWindowEx call ; -------------------------------------------- invoke RegisterWinClass,ADDR WndProc,ADDR szClassName, hIcon,hCursor,COLOR_BTNFACE+1 mov Wwd, 300 mov Wht, 250 invoke TopXY,Wwd,sWid mov Wtx, eax invoke TopXY,Wht,sHgt mov Wty, eax invoke CreateWindowEx,WS_EX_LEFT, ADDR szClassName, ADDR szDisplayName, WS_OVERLAPPED or WS_SYSMENU, Wtx,Wty,Wwd,Wht, NULL,NULL, hInstance,NULL mov hWnd,eax ; --------------------------- ; macros for unchanging code ; --------------------------- DisplayWindow hWnd,SW_HIDE call MsgLoop ret Main endp ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« RegisterWinClass proc lpWndProc:DWORD, lpClassName:DWORD, Icon:DWORD, Cursor:DWORD, bColor:DWORD LOCAL wc:WNDCLASSEX mov wc.cbSize, sizeof WNDCLASSEX mov wc.style, CS_BYTEALIGNCLIENT or \ CS_BYTEALIGNWINDOW m2m wc.lpfnWndProc, lpWndProc mov wc.cbClsExtra, NULL mov wc.cbWndExtra, NULL m2m wc.hInstance, hInstance m2m wc.hbrBackground, bColor mov wc.lpszMenuName, NULL m2m wc.lpszClassName, lpClassName m2m wc.hIcon, Icon m2m wc.hCursor, Cursor m2m wc.hIconSm, Icon invoke RegisterClassEx, ADDR wc ret RegisterWinClass endp ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« MsgLoop proc LOCAL msg:MSG push esi push edi xor edi, edi ; clear EDI lea esi, msg ; Structure address in ESI jmp jumpin StartLoop: invoke TranslateMessage, esi ; -------------------------------------- ; perform any required key processing here ; -------------------------------------- invoke DispatchMessage, esi jumpin: invoke GetMessage,esi,edi,edi,edi test eax, eax jnz StartLoop mov eax, msg.wParam pop edi pop esi ret MsgLoop endp ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« WndProc proc hWin:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD LOCAL var :DWORD LOCAL caW :DWORD LOCAL caH :DWORD LOCAL Rct :RECT LOCAL buffer1[260]:BYTE ; these are two spare buffers LOCAL buffer2[260]:BYTE ; for text manipulation etc.. invoke DialogBoxParam,hInstance,offset szDisplayName,NULL,offset dlgproc,WM_INITDIALOG Switch uMsg Case WM_COMMAND Case WM_CREATE invoke DialogBoxParamA,hInstance,IDD_DLG1,NULL,offset dlgproc,WM_INITDIALOG Case WM_SYSCOLORCHANGE Case WM_SIZE Case WM_CLOSE Case WM_DESTROY invoke PostQuitMessage,NULL return 0 Endsw invoke DefWindowProc,hWin,uMsg,wParam,lParam ret WndProc endp dlgproc proc hWin:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD Switch uMsg Case WM_INITDIALOG invoke InitCommonControls mov column2.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column2.fmt,LVCFMT_LEFT mov column2.pszText,offset Heading2 mov column2.lx,150 invoke SendMessage,ListBoxhwnd,LVM_INSERTCOLUMN,0,addr column2 mov column3.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column3.fmt,LVCFMT_LEFT mov column3.pszText,offset Heading3 mov column3.lx,149 invoke SendMessage,ListBoxhwnd,LVM_INSERTCOLUMN,0,addr column3 mov column1.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column1.fmt,LVCFMT_LEFT mov column1.pszText,offset Heading1 mov column1.lx,249 invoke SendMessage,ListBoxhwnd,LVM_INSERTCOLUMN,0,addr column1 mov column2.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column2.fmt,LVCFMT_LEFT mov column2.pszText,offset Heading2 mov column2.lx,150 invoke SendMessage,ListBoxhwnd,LVM_INSERTCOLUMN,0,addr column2 mov column3.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column3.fmt,LVCFMT_LEFT mov column3.pszText,offset Heading3 mov column3.lx,149 invoke SendMessage,ListBoxhwnd,LVM_INSERTCOLUMN,0,addr column3 mov column1.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column1.fmt,LVCFMT_LEFT mov column1.pszText,offset Heading1 mov column1.lx,249 invoke SendMessage,ListBoxhwnd,LVM_INSERTCOLUMN,0,addr column1 Case WM_CLOSE invoke EndDialog,hWin,0 invoke PostQuitMessage,NULL return 0 Endsw xor eax,eax ret dlgproc endp ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« OPTION PROLOGUE:NONE OPTION EPILOGUE:NONE TopXY proc wDim:DWORD, sDim:DWORD mov eax, [esp+8] sub eax, [esp+4] shr eax, 1 ret 8 TopXY endp OPTION PROLOGUE:PrologueDef OPTION EPILOGUE:EpilogueDef ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« end start IP_LISTER.INC Код (Text): ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ; include files ; ~~~~~~~~~~~~~ include \masm32\include\windows.inc include \masm32\include\masm32.inc include \masm32\include\gdi32.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc include \masm32\include\Comctl32.inc include \masm32\include\comdlg32.inc include \masm32\include\shell32.inc include \masm32\include\oleaut32.inc include \masm32\include\msvcrt.inc include \masm32\macros\macros.asm ; libraries ; ~~~~~~~~~ includelib \masm32\lib\masm32.lib includelib \masm32\lib\gdi32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\Comctl32.lib includelib \masm32\lib\comdlg32.lib includelib \masm32\lib\shell32.lib includelib \masm32\lib\oleaut32.lib includelib \masm32\lib\msvcrt.lib ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ;================= ; Local prototypes ;================= WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD TopXY PROTO :DWORD,:DWORD Paint_Proc PROTO :DWORD RegisterWinClass PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD MsgLoop PROTO Main PROTO dlgproc PROTO :DWORD,:DWORD,:DWORD,:DWORD AutoScale MACRO swidth, sheight invoke GetPercent,sWid,swidth mov Wwd, eax invoke GetPercent,sHgt,sheight mov Wht, eax invoke TopXY,Wwd,sWid mov Wtx, eax invoke TopXY,Wht,sHgt mov Wty, eax ENDM DisplayMenu MACRO handl, IDnum invoke LoadMenu,hInstance,IDnum invoke SetMenu,handl,eax ENDM DisplayWindow MACRO handl, ShowStyle invoke ShowWindow,handl, ShowStyle invoke UpdateWindow,handl ENDM .data szDisplayName db "IDD_DLG1",0 title db "IP LISTER",0 IDD_DLG1 equ 1000 column1 LV_COLUMN <> column2 LV_COLUMN <> column3 LV_COLUMN <> ListBoxhwnd equ 1001 Heading1 db "название",0 Heading2 db "расположение",0 Heading3 db "количество пистолетов",0 .data? hInstance dd ? CommandLine dd ? hIcon dd ? hCursor dd ? sWid dd ? sHgt dd ? hWnd dd ? ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Inserted modules ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ rsrc.rc Код (Text): #define IDD_DLG1 1000 #define IDC_LSV1 1001 #define connection 10000 #define IDM_1 10001 #define IDM_2 10002 #define IDM_3 10003 #include "resource.h" IDD_DLG1 DIALOGEX 6,6,528,353 CAPTION "IP LISTER" FONT 8,"MS Sans Serif",0,0,0 MENU connection STYLE WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX EXSTYLE WS_EX_TOOLWINDOW BEGIN CONTROL "",IDC_LSV1,"SysListView32",WS_CHILD|WS_VISIBLE|LVS_REPORT,0,0,528,353 END connection MENU BEGIN MENUITEM "выход",IDM_1,HELP MENUITEM "подключится",IDM_2 MENUITEM "отключится",IDM_3,GRAYED END
да у тебя в коде ListBoxHwnd определена как Код (Text): ListBoxHwnd equ 1001 в ListBoxHwnd должен быть хэндл ListView а не его ID,хэндл можно пулучить используя GetDlgItem,следующим образом Код (Text): GetDlgItem,hwnd,IDC_LSV1 где hwnd хэндл окна родителя( вовзрашенный CreateWindowEx ),и полученный хэндл передевай SendMessage. И почитай Iczeliona.
всёравно ничего - Код (Text): Case WM_CREATE invoke GetDlgItem,hWnd,IDC_LSV1 mov ListBoxhwnd,eax invoke DialogBoxParamA,hInstance,IDD_DLG1,NULL,offset dlgproc,WM_INITDIALOG mov hDlg,eax invoke SendMessage,hDlg,WM_MES1,offset ListBoxhwnd,0 Код (Text): Switch uMsg Case WM_MES1 mov column2.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column2.fmt,LVCFMT_LEFT mov column2.pszText,offset Heading2 mov column2.lx,150 invoke SendMessage,[wParam],LVM_INSERTCOLUMN,0,addr column2 mov column3.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column3.fmt,LVCFMT_LEFT mov column3.pszText,offset Heading3 mov column3.lx,149 invoke SendMessage,[wParam],LVM_INSERTCOLUMN,0,addr column3 mov column1.imask,LVCF_FMT+LVCF_TEXT+LVCF_WIDTH mov column1.fmt,LVCFMT_LEFT mov column1.pszText,offset Heading1 mov column1.lx,249 invoke SendMessage,[wParam],LVM_INSERTCOLUMN,0,addr column1 Код (Text): WM_MES1 dd WM_USER+100
слушай,еще раз просмотрел твои исходники,мда столько ошибок в одном файле... вообщем слушай, 1. Код (Text): invoke CreateWindowEx,WS_EX_LEFT, ADDR szClassName, ADDR szDisplayName, WS_OVERLAPPED or WS_SYSMENU, Wtx,Wty,Wwd,Wht, NULL,NULL, hInstance,NULL это тебе не C++ в масме нужно так Код (Text): invoke CreateWindowEx,WS_EX_LEFT,\ ADDR szClassName,\ ADDR szDisplayName,\ WS_OVERLAPPED or WS_SYSMENU,\ Wtx,\ Wty,\ Wwd,\ Wht,\ NULL,\ NULL,\ hInstance,\ NULL 2.ну про ListBoxHwnd я тебе уже сказал 3.ну там еще мелкие баги,уже не вспомню вобщем чтобы не захламять пост все файлы в аттаче,и фотик чтобы убедилася что все правильно.
Код (Text): invoke CreateWindowEx,WS_EX_LEFT, ADDR szClassName, ADDR szDisplayName, WS_OVERLAPPED or WS_SYSMENU, Wtx,Wty,Wwd,Wht, NULL,NULL, hInstance,NULL после некоторых тестов оказалось что масм 9 версии это все нормально ассемблит.
правильно, потомучто компилятор масма игронорирует символ конца строки,и считает параметром всё, что стоит после имени внешней процедуры, пусть даже это будет вызов другой процедуры, если вы не дописали несколько параметров