The MASM Forum

General => The Campus => Topic started by: ROBOSPOOK on June 14, 2014, 04:03:42 AM

Title: GOING NUTS HERE guys
Post by: ROBOSPOOK on June 14, 2014, 04:03:42 AM
Hutch, dedndave , MichaelW
   
HELP  I am pulling my hair out here and I don't have much to pull out anymore!

I started going through Randy Hydes tutorial and realized that I still remembered and understood pretty much all of his course material but it was a good refresher.  A little better for me was  Iczelion's tutorial however there are still some things that are bothering me greatly.

Is there a web page, file etc that describes all of these windows functions/procedures that are set forth in the .inc, .lib and .dll files???  This was one of my major problems in using Visual C++ over the past several months.  HOW DO I KNOW WHAT FUNCTION TO CALL? 

It would be nice to have one document where for example everything in Kernel32.dll is documented so that you can use it.  Like or hate it this was one of the things loved with Borlands Turbo C and Turbo Assmebler.. the documentation.  If this stuff is on the web .. well that is a start but it needs to be put into a document or book so that you can do this stuff off line.. which is the way I work .. unconnected.

Next I know you real programmer types ( I am an electrical engineer not a programmer) like modular programming and having stuff declared in say windows.inc so that you can just call it BUT "In My Humble Oppinion"  that approach tends to make the program a bit convoluded especially for someone trying to learn the syntax and lexical technology.  If I have to go into windows.inc or in to kernal32.dll to find what the program is doing I have placed at least another level of complexity to the project.  When i programmed in C I did use .h files but much of what I used was in one or two .h files and even then it was well documented for me. 

You can make the case that this is being a bit picky but like most engineers I need to know technology behind what I do. So this was the reason for asking before about how to disassemble the DLL files.  So I ask again 

IS THERE A PLACE WHERE .DLL .INC AND .LIB files are documented .. and if not how do I know what procedures/functions I want to use.. what resources are out there.

Thanks ROBO
Title: Re: GOING NUTS HERE guys
Post by: Gunther on June 14, 2014, 04:22:41 AM
ROBOSPOOK,

Quote from: ROBOSPOOK on June 14, 2014, 04:03:42 AM
Is there a web page, file etc that describes all of these windows functions/procedures that are set forth in the .inc, .lib and .dll files???

There are thousands of functions. The only way is to check it for example here (http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505%28v=vs.85%29.aspx).

Gunther
Title: Re: GOING NUTS HERE guys
Post by: dedndave on June 14, 2014, 04:39:59 AM
msdn documents most of them, as Gunther pointed out
whatever modern OS you intend to program under - plan on doing a lot of reading

but, you're approaching it from the wrong end of the horse
rather than asking "what are all the functions", browse the programs in \masm32\examples
when you see something that interests you - look through the source code

start with simple console mode programs...
input and output
memory allocation
processes and threads

as you try different things, you will find subjects of interest to dive into more deeply
once you have a handle (pun) on console programs
look into windows a little bit....
MessageBox
Dialog Boxes
window classes
CreateWindowEx
WndProc - window messages
message loops
painting and drawing
system defined controls

as you try different things, you'll learn about more and more functions
Title: Re: GOING NUTS HERE guys
Post by: jj2007 on June 14, 2014, 07:36:03 AM
Quote from: ROBOSPOOK on June 14, 2014, 04:03:42 AMit needs to be put into a document or book so that you can do this stuff off line.. which is the way I work .. unconnected.

See Tips, Tricks & Traps (http://www.webalice.it/jj2006/Masm32_Tips_Tricks_and_Traps.htm), step 7
Title: Re: GOING NUTS HERE guys
Post by: MichaelW on June 14, 2014, 10:28:09 AM
Instead of trying to use MSDN and online searches, I install a suitable PSDK on my system so I have a local reference for pretty much everything that I need. The one I am currently using is available  here (http://www.microsoft.com/en-us/download/details.aspx?id=6510). It's big, because it covers multiple APIs, but with a little practice easy to use.

And in addition to the documentation and examples, you get a complete set of header files and import libraries, and a large part of the source for the CRTL.
Title: Re: GOING NUTS HERE guys
Post by: raymond on June 14, 2014, 11:43:36 AM
I rely a lot on the WIN32.HLP file (24 Meg) which used to be readily available on the Internet before the advent of Windows Vista (possibly then with the MASM32 package). You can probably still find it somewhere with a search. And, if you want to use it with the newer versions of Windows, you will then have to install the WINHELP.EXE also available easily on the Internet.

(A .CHM version of the Help file may also be available already on the Internet.)
Title: Re: GOING NUTS HERE guys
Post by: hutch-- on June 14, 2014, 12:03:23 PM
I am with Ray here, WIN32.HLP is still the main reference for Win32. You can get MSDN but its a pain to find your way around as it has so much extra stuff in it.

With the MASM32 include files, constants and structures are contained in the main WINDOWS.INC, the function prototypes are matched from the original library to the include file, IE, if a function resides in KERNEL32.DLL with the IMPORT library KERNEL32.LIB, then the prototype is contained in KERNEL32.INC.

Yes it is cluttery but Windows is designed like that with a large count of DLLs which require a large count of import libraries.
Title: Re: GOING NUTS HERE guys
Post by: dedndave on June 14, 2014, 12:11:19 PM
the link Michael posted is for the web-install

Windows Server 2003 SP1 Platform SDK ISO Installer
http://www.microsoft.com/en-us/download/details.aspx?id=15656 (http://www.microsoft.com/en-us/download/details.aspx?id=15656)

Windows Server 2003 SP1 Platform SDK Full Installer
http://www.microsoft.com/en-us/download/details.aspx?id=12261 (http://www.microsoft.com/en-us/download/details.aspx?id=12261)

MSDN Library for Visual Studio 2008 SP1 (Visual Studio not required)
http://www.microsoft.com/en-us/download/details.aspx?id=20955 (http://www.microsoft.com/en-us/download/details.aspx?id=20955)
Title: Re: GOING NUTS HERE guys
Post by: ROBOSPOOK on June 14, 2014, 01:18:08 PM
Yea ... for whatever reason that will not instill under my win7 64 bit.  Not sure what the problem is.. but the good news is that I just found a copy of win32.hlp on my server.. how sweet it is!  My point is that its a little hard to find something you need in the heat of battle when you don't know what the function is called.. whereas if it were in a booklet format on my local drive I can use it anywhere anytime. 

I know that one of my problems is that I don't to well interfacing with the Microsoft web site.. heck I don't interface with ANYTHING Microsoft very well.  Although I have looked for documentation on what was really in Kernel32.dll maybe one day I will find it.

I still say that modular programming is convoluted I guess that's why dinosaurs like me retire  LOL

The bright spot in all of this is "YOU GUYS" is that you once again have exceeded my expectations and bailed a poorly adapted ol' Electronics puke.. thanks again

ROBO


Title: Re: GOING NUTS HERE guys
Post by: adeyblue on June 14, 2014, 01:23:14 PM
I sucked out and converted the Win32 Programmer's Reference (https://archive.org/details/WinNT3.1ProgrammersReference) from a NT 3.1 SDK last week. It's sort of a middle ground between the win32.hlp mentioned above and full blown MSDN. The first two volumes are a cross between background information on the how's and why's of Windows and C based tutorials. The 3rd and 4th are the function specs, and the last covers structures and other miscellany.

The start of the book can be read here (https://archive.org/stream/WinNT3.1ProgrammersReference/WinNTSDK-ProgrammersReferenceVol1#page/n23/mode/2up) without downloading anything if anybody fancies checking it out without committing the bandwidth.

Obviously with it coming out when Methuselah was in short pants it's not the lateset and greatest information, but a large chunk of it is still relevant (except for the screenshots) as of Win 8.
Title: Re: GOING NUTS HERE guys
Post by: jj2007 on June 14, 2014, 05:30:42 PM
Quote from: hutch-- on June 14, 2014, 12:03:23 PM
I am with Ray here, WIN32.HLP is still the main reference for Win32.

And there is a link to a copy in step 7 of what I posted above. I don't post the direct link because I fear that PB might remove it one day if Google ranks that site too high.
Title: Re: GOING NUTS HERE guys
Post by: ROBOSPOOK on June 15, 2014, 03:53:33 AM
adeyblue, JJ,
  Thanks that's a nice site I have bookmarked it .. too bad its not easily converted to PDF that's what I am looking for

I have the full win32.hlp file.. all 24 some odd MB of it  and would be willing to send it to anyone interested .. email will work as it compresses down to just less than 5k in size, just let me know who wants it.  The only problem I have with it is that QE does not pick it up and display it from the help menu but it still displays if you double click on it so its not a bad thing. 

This will help greatly guys thanks

Title: Re: GOING NUTS HERE guys
Post by: ROBOSPOOK on June 15, 2014, 04:25:18 AM
I stand corrected.. you can and I have downloaded the 3.51 document from the SDK.. thanks
Title: Re: GOING NUTS HERE guys
Post by: guga on June 30, 2014, 01:18:38 PM
EXcelent, excelent work. !!!! :greenclp: :greenclp: :t :t