News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

How many files in \Masm32\Examples use ComCtr32.inc?

Started by jj2007, November 24, 2023, 08:38:04 PM

Previous topic - Next topic

jj2007

include \masm32\MasmBasic\MasmBasic.inc
  Init
  Print cfm$("\n\nFind out how many example files use comctl32.inc\n"), Cpu$()
  Repeat 10
NanoTimer()
xor ebx, ebx
GetFiles \Masm32\Examples\*.asm
For_ ecx=0 To eax-1
Let esi=FileRead$(Files$(ecx))
.if Instr_(esi, "\comctl32.inc", 1) ; case-insensitive search
inc ebx
If_ edi==0 Then Print CrLf$, Files$(ecx)
.endif
Next
inc edi
Print Str$("\nfinding %i matches", ebx), Str$(" in %i files took ", Files$(?)), NanoTimer$()
  ENDM
EndOfCode

Here they are, with timings:
Find out how many example files use comctl32.inc
AMD Athlon Gold 3150U with Radeon Graphics
\Masm32\Examples\Bill_Cravener\calender\calendar.asm
\Masm32\Examples\Bill_Cravener\controls\controls.asm
\Masm32\Examples\Bill_Cravener\mvolume\dlltest.asm
\Masm32\Examples\Bill_Cravener\mvolume\libtest.asm
\Masm32\Examples\Bill_Cravener\playmidi\multimedia.asm
\Masm32\Examples\Bill_Cravener\PlayMP3\Multimedia.asm
\Masm32\Examples\Bill_Cravener\popinfo\popinfo.asm
\Masm32\Examples\Bill_Cravener\tabs\tabs.asm
\Masm32\Examples\dialogs\pbddemo\lib\getip.asm
\Masm32\Examples\exampl01\comctls\comctls.asm
\Masm32\Examples\exampl03\menudemo\menudemo.asm
\Masm32\Examples\exampl03\splitter\splitter.asm
\Masm32\Examples\exampl04\jacts\jacts - Copia.asm
\Masm32\Examples\exampl04\jacts\jacts.asm
\Masm32\Examples\exampl04\listview\listview.asm
\Masm32\Examples\exampl04\regdemo\regdemo.asm
\Masm32\Examples\exampl04\treedemo\treedemo.asm
\Masm32\Examples\exampl05\hlldemo\fileio\fileio.asm
\Masm32\Examples\exampl05\hlldemo\gettime\gettime.asm
\Masm32\Examples\exampl05\hlldemo\smalled\redit.asm
\Masm32\Examples\exampl05\hlldemo\string\string.asm
\Masm32\Examples\exampl05\peimage\peimage.asm
\Masm32\Examples\exampl05\unicode\resstrng\resstrng.asm
\Masm32\Examples\exampl05\unicode\unicode\unicode.asm
\Masm32\Examples\exampl06\getini\getini.asm
\Masm32\Examples\exampl06\jmptable\jmptable.asm
\Masm32\Examples\exampl06\scaption\scaption.asm
\Masm32\Examples\exampl06\sortdemo\simple.asm
\Masm32\Examples\exampl06\vtable\dynamic\dynamic.asm
\Masm32\Examples\exampl06\vtable\vtable.asm
\Masm32\Examples\exampl06\vtable\vtdll.asm
\Masm32\Examples\exampl07\runcpl\runcpl.asm
\Masm32\Examples\exampl07\sdw\sdw.asm
\Masm32\Examples\exampl07\ttbar\ttbar.asm
\Masm32\Examples\IczelionSQL\ODBCTest.asm
\Masm32\Examples\poasm\dll\tstdll\tstdll.asm
\Masm32\Examples\poasm\dll\dlltst.asm
\Masm32\Examples\poasm\fda2\fda2.asm
\Masm32\Examples\poasm\runcpl\runcpl.asm
finding 39 matches in 378 files took 184 ms
finding 39 matches in 378 files took 102 ms
finding 39 matches in 378 files took 84 ms
finding 39 matches in 378 files took 83 ms
finding 39 matches in 378 files took 81 ms
finding 39 matches in 378 files took 86 ms
finding 39 matches in 378 files took 80 ms
finding 39 matches in 378 files took 82 ms
finding 39 matches in 378 files took 77 ms
finding 39 matches in 378 files took 73 ms

TimoVJL

Source code size don't correlates to binary size.pFile Data Description Value
00007634 00008C1C Hint/Name RVA 00F7 GetDesktopWindow
00007638 00008D20 Hint/Name RVA 01B1 MessageBoxA
0000763C 00008D2E Hint/Name RVA 0109 GetKeyState
00007640 00008D3C Hint/Name RVA 01FD SendMessageA
00007644 00008D4C Hint/Name RVA 00E6 GetClassNameA
00007648 00008D5C Hint/Name RVA 0202 SendMessageW
0000764C 00008D6C Hint/Name RVA 0021 CharLowerBuffA
00007650 00008D7E Hint/Name RVA 002F CharUpperBuffA
00007654 00008D90 Hint/Name RVA 01E4 RegisterClipboardFormatA
00007658 00008DAC Hint/Name RVA 0180 IsClipboardFormatAvailable
0000765C 00008DCA Hint/Name RVA 01C8 OpenClipboard
00007660 00008DDA Hint/Name RVA 00EB GetClipboardData
00007664 00008DEE Hint/Name RVA 003A CloseClipboard
00007668 00008E00 Hint/Name RVA 00AF EmptyClipboard
0000766C 00008E12 Hint/Name RVA 020C SetClipboardData
00007670 00008E26 Hint/Name RVA 00FF GetFocus
00007674 00008E32 Hint/Name RVA 0216 SetFocus
00007678 00008E3E Hint/Name RVA 023D SetWindowTextA
0000767C 00008E50 Hint/Name RVA 023B SetWindowPos
00007680 00008E60 Hint/Name RVA 00D1 FindWindowExA
00007684 00008E70 Hint/Name RVA 0100 GetForegroundWindow
00007688 00008E86 Hint/Name RVA 024E SystemParametersInfoA
0000768C 00008E9E Hint/Name RVA 01BE MoveWindow
00007690 00008EAC Hint/Name RVA 0083 DefWindowProcA
00007694 00008EBE Hint/Name RVA 012D GetParent
00007698 00008ECA Hint/Name RVA 01A2 LoadStringA
0000769C 00008ED8 Hint/Name RVA 01A3 LoadStringW
000076A0 00008EE6 Hint/Name RVA 0022 CharLowerBuffW
000076A4 00008EF8 Hint/Name RVA 0030 CharUpperBuffW
000076A8 00000000 End of Imports user32.dll
000076AC 00008C3C Hint/Name RVA 0134 GetModuleHandleA
000076B0 00008C50 Hint/Name RVA 01EA LoadLibraryA
000076B4 00008C60 Hint/Name RVA 0153 GetProcAddress
000076B8 00008C72 Hint/Name RVA 0269 SetConsoleCP
000076BC 00008C82 Hint/Name RVA 026F SetConsoleOutputCP
000076C0 00008C98 Hint/Name RVA 02B7 Sleep
000076C4 00008CA0 Hint/Name RVA 022E QueryPerformanceCounter
000076C8 00008CBA Hint/Name RVA 022F QueryPerformanceFrequency
000076CC 00008CD6 Hint/Name RVA 00D1 FreeLibrary
000076D0 00008CE4 Hint/Name RVA 009B ExitProcess
000076D4 00008F0A Hint/Name RVA 0128 GetLastError
000076D8 00008F1A Hint/Name RVA 00CC FormatMessageA
000076DC 00008F2C Hint/Name RVA 0315 lstrcpyA
000076E0 00008F38 Hint/Name RVA 00F9 GetConsoleWindow
000076E4 00008F4C Hint/Name RVA 01DA IsBadStringPtrA
000076E8 00008F5E Hint/Name RVA 030F lstrcatA
000076EC 00008F6A Hint/Name RVA 01BD HeapAlloc
000076F0 00008F76 Hint/Name RVA 01C1 HeapFree
000076F4 00008F82 Hint/Name RVA 016A GetStdHandle
000076F8 00008F92 Hint/Name RVA 026D SetConsoleCursorPosition
000076FC 00008FAE Hint/Name RVA 02EC WideCharToMultiByte
00007700 00008FC4 Hint/Name RVA 02F7 WriteFile
00007704 00008FD0 Hint/Name RVA 01AC GlobalFree
00007708 00008FDE Hint/Name RVA 00C0 FindResourceA
0000770C 00008FEE Hint/Name RVA 01EF LoadResource
00007710 00008FFE Hint/Name RVA 01B0 GlobalLock
00007714 0000900C Hint/Name RVA 01B7 GlobalUnlock
00007718 0000901C Hint/Name RVA 01A5 GlobalAlloc
0000771C 0000902A Hint/Name RVA 020B MultiByteToWideChar
00007720 00009040 Hint/Name RVA 00C6 FlushConsoleInputBuffer
00007724 0000905A Hint/Name RVA 0235 ReadConsoleInputW
00007728 0000906E Hint/Name RVA 01C6 HeapSize
0000772C 0000907A Hint/Name RVA 01C4 HeapReAlloc
00007730 00009088 Hint/Name RVA 0256 RtlMoveMemory
00007734 00009098 Hint/Name RVA 02EF WriteConsoleInputA
00007738 000090AE Hint/Name RVA 011F GetFileType
0000773C 000090BC Hint/Name RVA 0057 CreateTimerQueue
00007740 000090D0 Hint/Name RVA 0058 CreateTimerQueueTimer
00007744 000090E8 Hint/Name RVA 006B DeleteTimerQueue
00007748 000090FC Hint/Name RVA 00F5 GetConsoleScreenBufferInfo
0000774C 0000911A Hint/Name RVA 026E SetConsoleMode
00007750 0000912C Hint/Name RVA 023D ReadFile
00007754 00009138 Hint/Name RVA 0156 GetProcessHeap
00007758 0000914A Hint/Name RVA 0132 GetModuleFileNameA
0000775C 00009160 Hint/Name RVA 00CD FormatMessageW
00007760 00009172 Hint/Name RVA 00B2 FindFirstFileExA
00007764 00009186 Hint/Name RVA 00B3 FindFirstFileExW
00007768 0000919A Hint/Name RVA 00BB FindNextFileW
0000776C 000091AA Hint/Name RVA 00AD FindClose
00007770 000091B6 Hint/Name RVA 0179 GetSystemTimeAsFileTime
00007774 000091D0 Hint/Name RVA 00A4 FileTimeToSystemTime
00007778 000091E8 Hint/Name RVA 0177 GetSystemTime
0000777C 000091F8 Hint/Name RVA 02BC SystemTimeToFileTime
00007780 00009210 Hint/Name RVA 02BD SystemTimeToTzSpecificLocalTime
00007784 00009232 Hint/Name RVA 0104 GetDateFormatA
00007788 00009244 Hint/Name RVA 0105 GetDateFormatW
0000778C 00009256 Hint/Name RVA 018E GetTimeFormatA
00007790 00009268 Hint/Name RVA 018F GetTimeFormatW
00007794 0000927A Hint/Name RVA 011C GetFileSize
00007798 00009288 Hint/Name RVA 02CF UnmapViewOfFile
0000779C 0000929A Hint/Name RVA 0023 CloseHandle
000077A0 000092A8 Hint/Name RVA 003D CreateFileA
000077A4 000092B6 Hint/Name RVA 0040 CreateFileW
000077A8 000092C4 Hint/Name RVA 025B SearchPathA
000077AC 000092D2 Hint/Name RVA 0285 SetFilePointer
000077B0 000092E4 Hint/Name RVA 003E CreateFileMappingA
000077B4 000092FA Hint/Name RVA 0200 MapViewOfFile
000077B8 0000930A Hint/Name RVA 0289 SetFileTime
000077BC 00009318 Hint/Name RVA 00FE GetCurrentDirectoryA
000077C0 00009330 Hint/Name RVA 0133 GetModuleFileNameW
000077C4 00009346 Hint/Name RVA 00FF GetCurrentDirectoryW
000077C8 0000935E Hint/Name RVA 012C GetLogicalDriveStringsA
000077CC 00009378 Hint/Name RVA 02B6 SizeofResource
000077D0 0000938A Hint/Name RVA 01B3 GlobalReAlloc
000077D4 0000939A Hint/Name RVA 00E6 GetCommandLineA
000077D8 000093AC Hint/Name RVA 00B4 FindFirstFileW
000077DC 000093BE Hint/Name RVA 00B1 FindFirstFileA
000077E0 000093D0 Hint/Name RVA 011D GetFileSizeEx
000077E4 000093E0 Hint/Name RVA 0118 GetFileAttributesExA
000077E8 000093F8 Hint/Name RVA 01E8 LCMapStringW
000077EC 00000000 End of Imports kernel32.dll
000077F0 00008D00 Hint/Name RVA 002F CreateFontIndirectA
000077F4 00000000 End of Imports gdi32.dll
000077F8 00009408 Hint/Name RVA 000D GetSaveFileNameW
000077FC 0000941C Hint/Name RVA 000B GetOpenFileNameW
00007800 00009430 Hint/Name RVA 000C GetSaveFileNameA
00007804 00009444 Hint/Name RVA 000A GetOpenFileNameA
00007808 00000000 End of Imports comdlg32.dll
0000780C 00009466 Hint/Name RVA 005B SHBrowseForFolderA
00007810 0000947C Hint/Name RVA 0096 SHGetPathFromIDListA
00007814 00000000 End of Imports shell32.dll
00007818 000094A0 Hint/Name RVA 0057 SysFreeString
0000781C 00000000 End of Imports oleaut32.dll
00007820 000094BE Hint/Name RVA 0060 CoTaskMemFree
00007824 00000000 End of Imports ole32.dll
May the source be with you

jj2007

Quote from: TimoVJL on November 25, 2023, 12:36:18 AMSource code size don't correlates to binary size.

Who would have thought that a powerful library needs some space - a whopping 33 kBytes in this case, even if a proggie doesn't use all of its functions :rolleyes:

Yes, 18 lines of code is not much. I am sure you could cook up an equivalent C program in no time at all, and it would weigh in at only 3584 bytes of executable. Maybe it would be even faster :thumbsup:

TimoVJL

Building good static libraries are always difficult thing.
Have to understand for example COMDAT features and source code modules.
I am not an expert for these things, but sadly i can examine object code and libraries some how and i see things.
May the source be with you

HSE

Equations in Assembly: SmplMath

TimoVJL

Quote from: HSE on November 25, 2023, 07:23:41 AM
Quote from: TimoVJL on November 25, 2023, 06:49:44 AMand i see things.

Dead people?? :dazzled:



Not this far  :biggrin:

Next question will be:
Is that library in this room right now with us ?   :biggrin:
May the source be with you

HSE

Equations in Assembly: SmplMath

jj2007

Quote from: TimoVJL on November 25, 2023, 06:49:44 AMand i see things

This is getting weird. Timo, old friend, have you called the ghostbusters already?


daydreamer

my none asm creations
https://masm32.com/board/index.php?topic=6937.msg74303#msg74303
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."
Like SIMD coding