News:

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

ML 8.0 compatibility issues

Started by ToutEnMasm, June 09, 2006, 06:55:33 AM

Previous topic - Next topic

ToutEnMasm

hello,
the ML 8 don't support the masm directive record .
Record make the argument allowed (one by one) for all the source and it is a good thing to replace it.
By what is it replace ?.
                    ToutEnMasm

hutch--

I think you can replace a record with a structure. This is what I have seen in the later PLATFORMSDK C header files.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

Siekmanski

COOL !!!

The only thing I had to change in windows.inc was the "IMPORT_OBJECT_HEADER STRUCT"

changed:
    rImport ImportRec <>
to:
    rImport RECORD Reserved : 11,NameType : 3,Type2 : 2

Hope this is correct ??

japheth

I just download and installed this thing and that is what I'm getting when I try to run it in CMD.EXE:

--------------------------------------------------------------------------------------------------------------
D:\MSVC8\VC\bin>ml
Das angegebene Programm kann nicht ausgeführt werden.

D:\MSVC8\VC\bin>cl
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50215.44 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

D:\MSVC8\VC\bin>
--------------------------------------------------------------------------------------------------------------

which translates to something like: the program cannot be run

to verify it is MASM alone I also run CL.EXE, which had no problems.

I'm sure it is me who is doing something wrong, but what?  :red

And I'm sure that the binary exists:

--------------------------------------------------------------------------------------------------------------
D:\MSVC8\VC\bin>dir *.exe

Verzeichnis von D:\MSVC8\VC\bin

23.01.2005  20:59            30.720 rc.exe
08.04.2005  21:27           290.816 clstencil.exe
08.04.2005  20:29             6.144 dumpbin.exe
08.04.2005  20:29             6.144 editbin.exe
08.04.2005  20:29             6.144 lib.exe
08.04.2005  20:29            23.552 cvtres.exe
08.04.2005  23:10             8.192 undname.exe
08.04.2005  23:10            32.768 xdcmake.exe
08.04.2005  20:30           694.272 link.exe
08.04.2005  20:30            74.240 nmake.exe
08.04.2005  23:10            61.952 bscmake.exe
08.04.2005  18:52           106.496 cl.exe
09.02.2005  22:13           743.424 mt.exe
08.04.2005  21:43           178.176 sproxy.exe
08.04.2005  21:43            60.416 vcdeploy.exe
21.04.2006  18:11           350.208 ml.exe
              16 Datei(en)      2.673.664 Bytes
--------------------------------------------------------------------------------------------------------------



gwapo

I think you need to install Visual C++ (Express) before you can use MASM 8.0.

-chris

ToutEnMasm


with the problem of IMPORT_OBJECT_HEADER STRUCT just add () like that and it's work !?
If i can have the way to replace a record by a structure,it would be very useful.
                                                     ToutEnMasm

ImportRec RECORD Reserved : 11,NameType : 3,Type2 : 2

IMPORT_OBJECT_HEADER STRUCT
    Sig1 dw  (?)
    Sig2 dw     (?)
    Version dw  (?)
    Machine dw  (?)
    TimeDateStamp dd (?)
    SizeOfData dd   (?)
    union
        Ordinal dw  (?)
        Hint dw     (?)
    ends
    rImport ImportRec  <>
IMPORT_OBJECT_HEADER ENDS

japheth

> I think you need to install Visual C++ (Express) before you can use MASM 8.0.

Thanks, but where do you think do the other files come from? Possibly I have some kind of VCE prerelease with a MSVCR80.DLL which MASM 8 doesn't like and the setup program is unable to detect this condition. But having to download this package again just for such a toy seems not worth the effort.


hutch--

japheth,

The download is actually worth the effort as you get the latest CL, LINK, RC as well as ML. You also get the current C libraries with the Express edition, about all you need is the platformsdk that is recommended to use with it and you have the whole box and dice. From playing with CL on pure ansi C code, it does work well and the optimisation seems to be better thought out as well.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

japheth


Thanks Hutch, but as already mentioned I already downloaded the VCE and it works good. It's just that MS seemed to have modified the CRT dll a bit in the final version and made MASM rely on this version, so now the only benefit of a new download for me is to possibly have a  MASM v8 available for "educational purposes". No thanks!

hutch--

I just checked the msvcr80.dll from the current install to the first one I did after the Express edition was released and it is the same size and the same date.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

japheth


Strange! But a quick google showed that there are quite some problems with this dll. I thought the "dll hell" is something from the far distant past.

the msvcr80.dll which is installed by my VCE is 8.00.50215.44, date 8.4.2005, size 614.400.

For example it lacks the export _except_handler4_common, which is imported by the masm v8 binary.

Vortex

I installed the Microsoft .NET Framework Version 2.0 Redistributable Package (x86) and that was enough to run ml.exe 8.0 without downloading VC++ Express 2005

japheth

> I installed the Microsoft .NET Framework Version 2.0 Redistributable Package (x86)


Thanks for this hint, Vortex. On my system there was the .NET Framework v2.0 Beta 2 Redist installed, which had a msvcr80.dll which doesn't work with masm v8.



GregL

#13
Welcome to the world of "Side-by-Side DLLs". I was ranting about this issue here http://www.masm32.com/board/index.php?topic=3214.msg27207#msg27207. I put some links there that explain all this. Like Vortex said, you need to install the .NET Framework 2.0 to resolve the MSVCR80.DLL dependancy. You can't just copy MSVCR80.DLL to \Windows\System32, it won't work. If you have installed VC Express 2005, the .NET Framework is installed with that.

Edited:
If you build a native .exe with VC++ 2005, link with /MD and try to run that .exe on a machine that does not have the .NET Framework 2.0 installed, it won't run. Due to the MSVCR80.DLL dependancy.


Vortex

Hi Japheth,

To download the Microsoft .NET Framework Version 2.0 Redistributable Package (x86), you can check the link below :

http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en