hey people,
the most of you who responded to my posts wanted
a .lib version, so i tried to modify PhatObjects.
Now, it creates (or you have to create ;) ) .libs instead of

As far, i rewrote the howto and there is a html-version of it

What PhatObjects supports is:

- single inheritance
- implementation of interfaces (replacement for multiple inheritance)
- "polymorphism" ("reduced" and "simple" version)

Here is the included test.asm:

.model flat, stdcall
.stack 0ffh
option casemap :none

include ..\bin\PhatObjects.inc

use String
use PSys

sz1 byte "this is a string", 13, 10, 0

string pString ?

mov string, new( String )
eval String::string.setText, addr sz1
invoke StdOut, @eval( String::string.getText )

eval PSys::exit, 0
end start

** For those who care about size of binaries:
PhatObjects doesnt save the names of your methods and
classes in your .exe, instead, it will save pointers to then,
this has the effect that your .exe wont blow up ;) (see samps\test.exe if you dont believe).

there might be still some bugs and/or improvements,
i am waiting for suggestions ;)
(limitations of masm are still limitations of PhatObjects.
One limitation: since PhatObjects uses very long literals
to save informations about the classes created, labels/literals length cannot exceed 255, i will try to fix that)

Btw, i have a suggestion: How about a "PhatObjects Library";
a collection of classes you might always need, such like
file handlers, window controllers, string manipulators,
networking classes (sockets), etc. ?
If you know STL or JFC, you may also know what i mean.

Posted on 2002-04-16 10:32:53 by exzito
sorry i forgot the files
Posted on 2002-04-16 10:34:01 by exzito