News:

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

Main Menu

WANTED COMViewSrc.ZIP

Started by GoneFishing, December 04, 2015, 11:55:59 PM

Previous topic - Next topic

six_L

i don't know whether the files is being looked for.
Say you, Say me, Say the codes together for ever.

GoneFishing

Yes!
Thank you, six_L !!! How did you find it ?
It's big surprise . Now I know for sure there's nothing impossible !
Merry Christmas to all !



six_L

i'm pleasure to help you a bit.
happy new year to all.
Say you, Say me, Say the codes together for ever.

mabdelouahab

Why I didn't find it in the past  :(
I spent years of work and research for the COM, Though I finished work
Thank you six_L, and thank you GoneFishing for the Topic  :t

GoneFishing

@mabdelouahab :
I'm glad to be at your service

Hi all !
Hope you feel good after all that you had drunk on New Year's night .

Let's talk  about "How to compile this treasure code"

I've tried to build it in MS VS 2008 using original COMView makefile .
Here's what I got:
Quote
------ Build started: Project: COMView, Configuration: Debug Win32 ------
Performing Custom Build Step
Assembling: EditDlg.asm
***********
ASCII build
***********
objidl.inc(179) : error A2004:symbol type conflict : LPSTREAM
oaidl.inc(20) : error A2004:symbol type conflict : PVOID
oaidl.inc(24) : error A2004:symbol type conflict : LPWSTR
COMView.inc(62) : error A2004:symbol type conflict : PBYTE
COMView.inc(63) : error A2004:symbol type conflict : PSTR
COMView.inc(68) : error A2111:conflicting parameter definition
MASM : fatal error A1016: Internal error
  Version 9.00.21022.08
  ExceptionCode            = C0000005
  ExceptionFlags           = 00000000
  ExceptionAddress         = 00439FD9 (00400000) "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\ml.exe"
  NumberParameters         = 00000002
  ExceptionInformation[ 0] = 00000000
  ExceptionInformation[ 1] = 00000000
CONTEXT:
  Eax    = 00000000  Esp    = 0012F8C4
  Ebx    = 0045EA05  Ebp    = 0012F8E8
  Ecx    = EB762E34  Esi    = 0045EAB7
  Edx    = 785BBB60  Edi    = 00445DE4
  Eip    = 00439FD9  EFlags = 00010206
  SegCs  = 0000001B  SegDs  = 00000023
  SegSs  = 00000023  SegEs  = 00000023
  SegFs  = 0000003B  SegGs  = 00000000
  Dr0    = 00000000  Dr3    = 00000000
  Dr1    = 00000000  Dr6    = 00000000
  Dr2    = 00000000  Dr7    = 00000000
Build log was saved at "file://c:\masm32\proj\COMViewSrc\Debug\BuildLog.htm"
COMView - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

My guess is that COMView v1.5.2 (2003) was built with previous version of MASM32 SDK  .

What's your advice?

jj2007

Maybe the old LPSTREAM etc definitions can be adapted to the new Masm32 versions?

TouEnMasm

Quote
MASM : fatal error A1016: Internal error
This one don't surprise me,use jwasm and re-post the result

Fa is a musical note to play with CL

GoneFishing

Quote from: ToutEnMasm on January 03, 2016, 12:12:38 AM
Quote
MASM : fatal error A1016: Internal error
This one don't surprise me,use jwasm and re-post the result



Ok, but you have to know what have been done on ML build stage:
- DLGPROC and LPSTREAM were commented out (temporarily)   in windows.inc from MASM32 includes

Changes in  COMView makefile :
                                              - replace ML with JWASM (with full path or add the path to environment)
                                              - locate H2INC.EXE and add the path to it to environment

Open MS VS Command Prompt and navigate to COMViewSrc directory.
Execute command:
NMAKE /F COMView.mak

Errors from first run:
Quote
Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

        C:\MASM32\BIN\JWASM.exe -c -coff -Zi -nologo -Sg -D_DEBUG -Fl.\Debug\CD
cument -Fo.\Debug\CDocument           CDocument.asm

***********
ASCII build
***********

oaidl.inc(20) : Error A2136: Symbol type conflict: PVOID
oaidl.inc(20): Included by
  COMView.inc(19): Included by
   CDocument.asm(12): Main line code
oaidl.inc(24) : Error A2136: Symbol type conflict: LPWSTR
oaidl.inc(24): Included by
  COMView.inc(19): Included by
   CDocument.asm(12): Main line code
COMView.inc(61) : Error A2136: Symbol type conflict: PVOID
COMView.inc(61): Included by
  CDocument.asm(12): Main line code
COMView.inc(62) : Error A2136: Symbol type conflict: PBYTE
COMView.inc(62): Included by
  CDocument.asm(12): Main line code
COMView.inc(63) : Error A2136: Symbol type conflict: PSTR
COMView.inc(63): Included by
  CDocument.asm(12): Main line code
CDocument.asm: 1302 lines, 1 passes, 250 ms, 0 warnings, 5 errors

Comment out all these definitions and change externdef g_pObjects in COMView.inc to PVOID

Errors from next run of nmake:
Quote
***********
ASCII build
***********

EditDlg.asm(442) : Error A2189: Constant or relocatable label expected
return(2)[macros.inc]: Macro called from
  EditDlg.asm(442): Main line code
EditDlg.asm(516) : Error A2189: Constant or relocatable label expected
return(2)[macros.inc]: Macro called from
  EditDlg.asm(516): Main line code
EditDlg.asm(1445) : Error A2199: Syntax error in control-flow directive
EditDlg.asm(1800) : Error A2189: Constant or relocatable label expected
return(2)[macros.inc]: Macro called from
  EditDlg.asm(1800): Main line code
EditDlg.asm: 1949 lines, 1 passes, 250 ms, 0 warnings, 4 errors
NMAKE : fatal error U1077: 'C:\MASM32\BIN\JWASM.exe' : return code '0x1'
Stop.

You see that 3 out of 4 errors are caused by return macro (macros.inc):


;--- return: return a value in eax

ifndef return

return macro x
ifnb <x>
if OPATTR(x) eq 4 ;;constant?
  if x
mov eax,x
  else
xor eax,eax
  endif
else
mov eax,x
endif
endif
ret
endm

endif ;return








TouEnMasm


The good advise,use Jwasm OK
good advise,del all sorts of old builds and use vc++ to build the project:
Here the result,seems to work with minor modifies (name conflicts,public symbol..)
Compiled Under Windows 10 with vc++ 2015,put it in the disk with the masm32 package
and use the original libs.
comview.exe is in the release directory
Fa is a musical note to play with CL

GoneFishing

#24
Thank you , ToutEnMasm
Still I have to understand and build it myself !
BTW I reached the LINK stage with ML and got lots of LNK2005 errors
for example : OnNotify@0 is already defined in foo.obj

[EDIT]: I'm on Win XP 32 (which cannot run 64 bit executable)  and   MS VS 2008 (which doesn't recognize new solution file format)

[EDIT2]: BINGO ! I've built the source code from your attachment in MS VS Command Prompt with COMView makefile using JWASM :
NMAKE /F COMView.mak   
It would be great if you documented (if possible) those minor source code adjustments you've made
Below atached : 32 bit binary + PDB + listings = full debug info

TouEnMasm


document the change,take too much time.
for example :ptr = DWORD if error at compile and so on.
Fa is a musical note to play with CL

GoneFishing

OK, I'll let the command line tools find the differences
o = original , c = changed

Files c/CDocument.asm and o/CDocument.asm differ
Files c/CMainDlg.asm and o/CMainDlg.asm differ
Files c/COMView.asm and o/COMView.asm differ
Files c/COMView.inc and o/COMView.inc differ
Files c/EditDlg.asm and o/EditDlg.asm differ
================================================
sdiff -s ./o/CMainDlg.asm ./c/CMainDlg.asm
================================================
lea ecx,g_pObjects
      | lea ecx,ga_pObjects

mov ebx,g_pObjects
      | mov ebx,ga_pObjects

mov eax,g_pObjects
      | mov eax,ga_pObjects

================================================      
sdiff -s ./o/CDocument.asm ./c/CDocument.asm
================================================
mov ebx,g_pObjects
      | mov ebx,ga_pObjects

mov esi,g_pObjects
      | mov esi,ga_pObjects
     
================================================
sdiff -s ./o/COMView.asm  ./c/COMView.asm
================================================      
     
      > PUBLIC ga_pObjects


      <
g_pObjects PVOID 0
      | ga_pObjects DD 0

lea ecx,g_pObjects
      | lea ecx,ga_pObjects

lea esi,g_pObjects
      | lea esi,ga_pObjects

================================================
sdiff -s ./o/COMView.inc  ./c/COMView.inc
================================================
externdef g_pObjects:ptr
      | externdef ga_pObjects:DWORD

PVOID typedef ptr
      | PVOID typedef dword ;ptr

PBYTE typedef ptr byte
      | PBYTE typedef dword ;ptr byte

PSTR typedef ptr sbyte
      | PSTR typedef dword ;ptr sbyte

DLGPROC typedef proto :ptr, message:dword,wParam:dwor
      | DLGPROCA typedef proto :dword, message:dword,wParam:dw

PDLGPROC typedef ptr DLGPROC
      | PDLGPROC typedef ptr DLGPROCA

=================================================
sdiff -s ./o/EditDlg.asm  ./c/EditDlg.asm 
=================================================

      > ;----------- ajout -------------

      > return macro x

      > ifnb <x>

      > if (OPATTR x) eq 4 ;;constant?

      >   if x

      > mov eax,x

      >   else

      > xor eax,eax

      >   endif

      > else

      > mov eax,x

      > endif

      > endif

      > ret

      > endm

      >

      > ;---------------------------------

.elseif
      | .else ;if

      > ;----------- ajout -------------

      > return macro x

      > ifnb <x>

      > if (OPATTR x) eq 4 ;;constant?

      >   if x

      > mov eax,x

      >   else

      > xor eax,eax

      >   endif

      > else

      > mov eax,x

      > endif

      > endif

      > ret

      > endm

      >

      > ;---------------------------------

.elseif
      | .else ;if


wayne

Found these on a old CD.  I'll have to do 2 posts for file size.

wayne


_japheth

Hello,

here's the latest what I have found. It "should" assemble with both ML and jwasm (no guarantee!).

P.S.: the source needs the WinInc include files.

P.P.S: it has been compressed with 7z (to make it smaller than 512 kB). Original filename was "comviewsrc.7z"
Dummheit, gepaart mit Dreistigkeit - eine furchtbare Macht.