Author Topic: How do I include both windows.inc and Irvine32.inc?  (Read 4016 times)

assembler

  • Guest
How do I include both windows.inc and Irvine32.inc?
« on: February 17, 2017, 04:44:23 AM »
I have a problem to include both windows.inc and Irvine32.inc.

Here is the code:

Code: [Select]
.386
.model flat, stdcall
option casemap: none

include \masm32\include\windows.inc
include \masm32\include\irvine32.inc

.code
main:
ret
end main

The errors I get are:

Quote
non-benign structure redefinition: too few labels, incorrect initializers and etc

I know what is the cause to all these errors above:

Both windows.inc and Irvine32.inc define the same things, so windows.inc's set of definitions intersection Irvine32.inc's set of definitions is not empty set, but their symmetric difference is not empty set too, i.e. windows.inc define some things that Irvine32.inc doesn't and also Irvine32.inc defines some other things that windows.inc doesn't.
I want to include both of them, so I have all the definitions of both windows.inc and Irvine32.inc, but without errors, i.e. the complete and final set of definitions should be windows.inc's set of definitions union Irvine32.inc's set of definitions, but not multiset union. How do I do this? What I suppose to do to achieve this goal? I don't find instructions on google and the internet about how to do this anywhere.
Please help me.

Important & Note: I don't want to change and modify any include file, i.e. files with extension .inc, at all, this includes windows.inc and irvine32.inc, so don't suggest me to change and modify windows.inc or irvine32.inc. I want a solution that doesn't require this step please.

jj2007

  • Member
  • *****
  • Posts: 13335
  • Assembly is fun ;-)
    • MasmBasic
Re: How do I include both windows.inc and Irvine32.inc?
« Reply #1 on: February 17, 2017, 04:55:47 AM »
don't suggest me to change and modify windows.inc or irvine32.inc. I want a solution that doesn't require this step please.

- build something with windows.inc only, i.e. comment out the ; include irvine32.inc
- look at the "undefined symbol" lines
- extract what you really need from irvine.inc, and put it in a new file called MyIrvine.inc
- include the new file

Alternatively,
- install MasmBasic
- extract the attached files to \Masm32\MasmBasic\IrvineMB\*.*
- open \Masm32\MasmBasic\IrvineMB\IrvineDebug.asc in RichMasm and hit F6

This source uses Masm32, MasmBasic and Irvine32 in parallel.

assembler

  • Guest
Re: How do I include both windows.inc and Irvine32.inc?
« Reply #2 on: February 17, 2017, 05:28:54 AM »
You have no idea how much I love you right now! Nobody and no one has ever solved any of my difficult and complex problems conveniently, so much good and immediately in one post! I was afraid that I will probably never find a convenience and immediate solution to this problem! Thank you so much! You are rare and legendary excellent problem solver!