News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

Non-Forum Problems: Why not use a code repository

Started by bluedevil, June 09, 2023, 07:59:19 AM

Previous topic - Next topic

jj2007

Quote from: fearless on June 14, 2023, 10:44:00 PMusing WinInc for the includes could be used as a starting point.

My question is whether we will be able to tell a n00b "click here to start your first Masm64 project" (that's how Masm32 works - see \Masm32\examples...).

fearless

Honestly I don't know. Maybe one day perhaps. I suspect it may require a lot of work to bring the WinInc files up to date and maintain them to even approach something as comprehensive and all inclusive as the current masm32 sdk. An automated solution to convert the ms windows header files to asm includes would be the ideal solution, but as Biterider can attest to, its not an easy task.

jj2007

Quote from: fearless on June 15, 2023, 12:43:27 AMAn automated solution to convert the ms windows header files to asm includes would be the ideal solution, but as Biterider can attest to, its not an easy task.

I can attest that, too - I invested quite a bit of time into that task, but at a certain point lost the interest in 64-bit code...

daydreamer

Quote from: jj2007 on June 14, 2023, 10:49:47 PM
Quote from: fearless on June 14, 2023, 10:44:00 PMusing WinInc for the includes could be used as a starting point.

My question is whether we will be able to tell a n00b "click here to start your first Masm64 project" (that's how Masm32 works - see \Masm32\examples...).
Masm64 need for "wizard" based on templates done?
Console template and windows template ?
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

Vortex

Hi fearless,

Are you referring to these Windows include files ?

https://www.terraspace.co.uk/uasm.html#p8

QuoteWinInc is mostly compatible with the include files supplied with Masm32. The main differences are:

In Masm32 there is one big include, WINDOWS.INC, which contains the Win32 declarations, and a bunch of other includes which contain the function prototypes.
The include files of WinInc match 1:1 the header files contained in MSVC or MS PSDK, with extension .H replaced by .INC of course.

Unlike Masm32 the prototype parameters of the WinInc include files are "typed". They usually have the same type as their C counterparts.
In Masm32 all parameter types are "DWORD". Having typed parameters may be advantageous if the target has to be debugged and the debugger knows how to handle the MASM debug type information.
The few name conflicts are resolved differently. In WinInc, a name which is used in the Win32 API and is also a MASM reserved word (for example, "mask"), is changed by
adding a "_" suffix. In Masm32 the kind of the name modifications isn't consistent.

WinInc includes are more up-to-date than the ones coming with Masm32. All declarations for the Win32 API extensions added to Windows 2000 and Windows XP are there.
For some reason Masm32 doesn't allow to develop Open Source software with it. Furthermore none of its parts are redistributable. WinInc does not have such restrictions, it is Public Domain.

jj2007

Quote from: Vortex on June 16, 2023, 04:46:58 AM
WinInc is mostly compatible with the include files supplied with Masm32.

Mostly compatible, really? I've tried to get some of the examples to assemble, no luck.

C:\Masm32\WinInc\Samples\WinGUI1\WinGUI1.ASM
***********
ASCII build
***********

\Masm32\include\winextra.inc(22295) : Error A2143: Symbol redefinition: WINVER
\Masm32\include\winextra.inc(22295): Included by
  \Masm32\include\windows.inc(26889): Included by
   Tmp_File.asm(17): Main line code
Tmp_File.asm(38) : Error A2143: Symbol redefinition: CStr
Tmp_File.asm(51) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(66) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(68) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(69) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(70) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(71) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(74) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(77) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(97) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(103) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(115) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(121) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(140) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(143) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(152) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm(154) : Error A2160: INVOKE requires prototype for procedure
Tmp_File.asm: 157 lines, 1 passes, 65 ms, 0 warnings, 18 errors
*** Assembly error ***

Vortex

Hi Jochen,

Assuming that the include files are extracted to the folder \masm32\wininc :

G:\masm32>dir \masm32\wininc

04.10.2014  10:55             15282 AccCtrl.inc
16.05.2013  08:07              9575 AclAPI.INC
16.05.2013  08:07            261913 AdoInt.INC
16.05.2013  08:07             63499 ASPTLB.INC
16.05.2013  08:07              4800 BaseTsd.INC
16.05.2013  08:07              1401 CDERR.INC
16.05.2013  08:07              1520 cguid.INC
.
.
.


Build.bat :

\masm32\bin\rc Rsrc.rc
\masm32\bin\ml /c /coff /I\masm32\wininc WinGUI1.asm
\masm32\bin\polink /SUBSYSTEM:WINDOWS /LIBPATH:\masm32\lib WinGUI1.obj Rsrc.res kernel32.lib user32.lib gdi32.lib

jj2007