News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Re: MASM now on the Web!

Started by drhowarddrfine, June 08, 2006, 09:27:46 PM

Previous topic - Next topic

Manos

Paul.

I had done already what you tell,but the problem was in
MSVCR80.DLL.
I downloaded the vcredist_x86.exe, I installed this
and the problem solved.
Now, ML8 runs OK.

Thank you,
Manos.

Casper


Mark Jones

As far as I understand it, there isn't much advantage to using a ML older than 6.15... because the newer versions bloat the executables slightly (for various reasons), and don't provide much additional functionality. (Does 8.0 still not contain the .if-.while directives?) And why upgrade to 8.0 and then have to deal with these DLL issues if there is little benefit? Could someone please elaborate the benefits of upgrading? Thanks.
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

GregL

#18
Mark,

Good question. I am still kicking that one around myself. I don't know if it's worth it to use MASM 8.00 (or VC++ 2005). Microsoft seems to be so focused on .NET, that C and especially MASM seem to be an afterthought. I don't know of any feature of MASM 8.00 that outweigh the drawbacks, i.e. the C Run-Time Library issue. The VC++ 2005 IDE has some nice improvements, but again I don't know if the improvements outweigh the drawbacks.

I really don't like what they have done with the C Run-Time Library in VC++ 2005. If you could just copy MSVCR80.DLL to \Windows\System32 it would be OK, but that doesn't work. You can't just copy it to the \Windows\WinSxS folder either. It must be installed with either the .NET Framework 2.0 or the VC++ 2005 Redistributable Package.  :tdown

If you decide to just copy MSVCR80.DLL to the executable's folder you need to jump through hoops with manifests and all that junk.

You can just statically link in the CRT but I don't always want to do that.

At least with MASM 8.00 you can avoid this CRT issue by making sure you link to the MASM32 MSVCRT.LIB.

And then there is the issue of ML.EXE itself being dependant on MSVCR80.DLL.

I don't know, I am still undecided.



hutch--

I have just done a test install of the current MASM32 Project where I changed all of the old binaries to the current ones from the VC express edition and it seems to build all of the examples that I have tested so far with no problems. The only thing I have had to change is to comment out a record and a structure that used it in the WINDOWS.INC file. From earlier testing, you can do much the same with CL.EXE if you are building algorithms to object modules if you are writing plain ANSI C code so at the low level end you pick up the advantages of the latest binaries without the problems of code being dependent on specific DLLs from the net framework install.


Microsoft (R) Macro Assembler Version 8.00.50727.104
Copyright (C) Microsoft Corporation.  All rights reserved.

Assembling: M:\masm32\examples\exampl11\scaption\scaption.asm
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

Volume in drive M is WIN2K_M
Volume Serial Number is E866-1342

Directory of M:\masm32\examples\exampl11\scaption

09/15/2005  03:38p               4,318 scaption.asm
06/12/2006  10:59a               2,508 scaption.obj
06/12/2006  10:59a               3,072 scaption.exe
               3 File(s)          9,898 bytes
               0 Dir(s)  28,482,879,488 bytes free
Press any key to continue . . .
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

donkey

Hi Hutch,

You should note that the structure that had to be modified was the IMPORT_OBJECT_HEADER for PE files, not something anyone (other than myself and a few others) would ever actually use so it's no big deal. Other than that minor issue I had no problem at all assembling some of my old MASM applications, though I cannot comment on macros as I do not generally use them but I heard there might be some problems there.
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

GregL

I'm probably making too big a deal of this CRT issue. For MASM programs it's not much of an issue at all. People just need to be aware of it if they are using the CRT. For C and C++ programs it's more of an issue. I'm gonna shut up about it now.


hutch--

Greg,

DON'T shut up about it, the more we know, the more use it is to more people as this will be a popular set of binaries once they are properly understood.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

hutch--

With the structure that Edgar mentioned, this is the version from the server 2003 header file with a suggested conversion to MASM syntax for WINDOWS.INC.

I confess to not having used records for so long I forget how they work but I think this conversion should be OK.


; =======
; winnt.h
; =======
typedef struct IMPORT_OBJECT_HEADER {
    WORD    Sig1;                       // Must be IMAGE_FILE_MACHINE_UNKNOWN
    WORD    Sig2;                       // Must be IMPORT_OBJECT_HDR_SIG2.
    WORD    Version;
    WORD    Machine;
    DWORD   TimeDateStamp;              // Time/date stamp
    DWORD   SizeOfData;                 // particularly useful for incremental links

    union {
        WORD    Ordinal;                // if grf & IMPORT_OBJECT_ORDINAL
        WORD    Hint;
    };

    WORD    Type : 2;                   // IMPORT_TYPE
    WORD    NameType : 3;               // IMPORT_NAME_TYPE
    WORD    Reserved : 11;              // Reserved. Must be zero.
} IMPORT_OBJECT_HEADER;


IMPORT_OBJECT_HEADER STRUCT
  Sig1          dw ?        ; Must be IMAGE_FILE_MACHINE_UNKNOWN
  Sig2          dw ?        ; Must be IMPORT_OBJECT_HDR_SIG2.
  Version       dw ?        ;
  Machine       dw ?        ;
  TimeDateStamp dd ?        ; Time/date stamp
  SizeOfData    dd ?        ; particularly useful for incremental links
  UNION
    Ordinal     dw ?        ; if grf & IMPORT_OBJECT_ORDINAL
    Hint        dw ?        ;
  ENDS
  _Type         dw ?        ; IMPORT_TYPE
  NameType      dw ?        ; IMPORT_NAME_TYPE
  Reserved      dw ?        ; Reserved. Must be zero.
IMPORT_OBJECT_HEADER ENDS

Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

GregL


Vortex

Quote from: Greg on June 12, 2006, 04:35:14 AM
I'm probably making too big a deal of this CRT issue. For MASM programs it's not much of an issue at all. People just need to be aware of it if they are using the CRT.

Hi Greg,

Instead of the CRT, you can use static libraries like masm32.lib or Jibz's WCRT :

http://www.masm32.com/board/index.php?topic=437.0

P1

What is the minimum software purchase ( least amount of investment $$$ ) to obtain MASM 8 for commercial development?

Regards,  P1  :8)

GregL

P1,

Visual C++ Editions under 'Tools'.

It requires Visual Studio 2005 Professional.


GregL

Vortex,

Yes, but the CRT is very handy and I do use it in my MASM programs. Actually if you link to the MASM32 MSVCRT.LIB which refers to MSVCRT.DLL, and don't use the VC++ 2005 MSVCRT.LIB which refers to MSVCR80.DLL, all is well.

With the C compiler it's another story, but, as you know, you can work around it in that as well.


hutch--

I was watching a movie last night and had the time to download a couple of ISO files so I downloaded the VC ISO in case I needed to do a re-install of the VC2005 binaries but as the movie was a reasonably long one, when that finished I also downloaded the ISO for the current version of VB. Installed in today directly from the ISO and it seems to run fine.

I confess to not having written VB since VB2/3 which is a really long time ago but it still had that familiar feeling of VB, plonk something on a form, scrawl some code in the window behind it and behold, it runs ! It is still probably a good toy to have around if you have a feel for VB and its interface design system and is probably useful for making a whole host of personal tricks on a local machine where you don't feel like making the effort of doing it the hard way.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php