News:

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

Main Menu

How do I include both windows.inc and Irvine32.inc?

Started by assembler, February 17, 2017, 04:44:23 AM

Previous topic - Next topic

assembler

I have a problem to include both windows.inc and Irvine32.inc.

Here is the code:


.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

Quote from: assembler on February 17, 2017, 04:44:23 AMdon'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

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!