News:

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

BETA Release

Started by PBrennick, July 17, 2006, 04:51:06 AM

Previous topic - Next topic

PBrennick

The first BETA Release, of Version 1a of the GeneSys Project is available for download from here.

Any comments are always welcome and will help this project to quickly mature.

Paul
The GeneSys Project is available from:
The Repository or My crappy website

japheth


Hello Paul,

thanks for your GeneSys project! Since I'm an "experienced" programmer this project is not intended to be used by me. But neverthelessl I found a very good idea inside: supplying .DEF files to let POLINK create import libraries. With your kind permission :wink I will steal this idea - I just added a new option to a self-written h2inc tool (h2incX) to make it write .DEF files from .H input files. Eventually I will also supply .DEF files with my "Win32Inc" project (which is targeted for "very experienced programmers" only :toothy,  it's no competitor for GeneSys).

Regards

Japheth


Vortex

Japheth,

Supplying def files with your project sound like a good idea. Our GeneSys package provides a lib2def tool converting import libraries to module definiton files.

PBrennick

japheth,
Thank you for the compliment about our project.  I am aware of your work.  In fact, I use Joe as a quick email scanner all the time.  I wonder, however, why you never bothered to add sendmail capability.  There are several working versions in assembly available that work with SMTP, but there is nothing that will work with ESMTP.

Paul
The GeneSys Project is available from:
The Repository or My crappy website

japheth

> Our GeneSys package provides a lib2def tool converting import libraries to module definiton files.

Thanks Vortex. I already added this new feature to my h2inc tool, so I will possibly not need lib2def. But another question: there is at least 1 library, UUID.LIB, which does not contain just import descriptors, but "real" code (the GUIDs, IIDs, CLSIDs of all the MS COM objects). How did you generate this lib?

> I wonder, however, why you never bothered to add sendmail capability.
> There are several working versions in assembly available that work with SMTP

Hi Paul. I forgot a bit about Joe after I finally could switch to DSL. But now, with each new version of Thunderbird becoming slower and taking longer to start, there will soon come the time when Joe will possibly resurrect. Adding SMTP is not on my todo list. However, the source is public domain, it doesn't depend on me.

Vortex

Hi Japheth,

You can check Build.bat located in the folder C:\GeneSys\def , it contains this line :

..\bin\polib /MACHINE:IX86 /DEF:uuid.def /OUT:uuid.lib

All the import libraries are created from module definition files.

PBrennick

#6
Iczelion's Tutorials have been added to the Project.  For users who have already downloaded the project you can get the tutorials separately from our new server.  Just download it, create a tutorial folder under the GeneSys folder and unpack the Iczelion folder into it.  The strength of this version is the java applet that allows global searching of all the html files.

An alternate methode is to get the self-extracting version of the archive.  Download it to the \GeneSys folder, execute it and it will create the subfolders for you.

Also, I am testing a new server for hosting the Project.  The project can be downloaded from our new server.  If you have a problem with the download, please let me know.

Paul
The GeneSys Project is available from:
The Repository or My crappy website

japheth

Quote from: Vortex on July 17, 2006, 07:50:04 PM
Hi Japheth,

You can check Build.bat located in the folder C:\GeneSys\def , it contains this line :

..\bin\polib /MACHINE:IX86 /DEF:uuid.def /OUT:uuid.lib

All the import libraries are created from module definition files.

I see now how it is supposed to work, but it will not work this way. If I link this simple test program with your UUID.LIB:


;--- a simple LIB test

.386
.model flat, stdcall
    option casemap:none

;WIN32_LEAN_AND_MEAN equ 1
    .nolist
    .nocref
    include windows.inc
    include macros.inc
    .list
    .cref

    .const

extern IID_IUnknown:IID
   
    .code

main proc c arcg:dword, argv:ptr ptr sbyte

local hConOut:DWORD
local wszStr[40]:WORD
local szText[80]:byte

    invoke GetStdHandle, STD_OUTPUT_HANDLE
    mov hConOut, eax

    mov eax, offset IID_IUnknown
    lea ecx, wszStr
    invoke StringFromGUID2, eax, ecx, 40
    invoke wsprintf, addr szText, CStr(<"IID_IUnknown=%S",10>), addr wszStr
    push 0
    mov edx, esp
    invoke WriteConsole, hConOut, addr szText, eax, edx, 0
    pop eax
    ret

main endp

start:
    call main
    invoke ExitProcess, 0

    end start


I don't get link errors, but trying to run it makes windows complain that UUID.DLL hasn't been found - which is quite correct, this dll doesn't exist. The problem is that the UUID.LIB contained in the PSDK contains static code.

Regards

Japheth

Vortex

QuoteThe problem is that the UUID.LIB contained in the PSDK contains static code.

Exactly, this is the case. The import library created by Polink doesn't contain the static code.

Vortex

Hi Paul,

I downloaded successfully the project from the new server.

PBrennick

Vortex,
Thank you for testing.  I have created a project to test Japheth's problem and I found out the same thing.  Currently, I include 2 static libs in the lib folder at install time.  It looks like we will need to add a third.  I hope that is the only one ...

Paul
The GeneSys Project is available from:
The Repository or My crappy website

japheth

Quote from: PBrennick on July 18, 2006, 07:11:55 AM
Vortex,
I hope that is the only one ...

Paul


At least one should have a look at dxguid.lib, dinput.lib and dinput8.lib. DInput usually contains static code for the "system devices" keyboard and mouse.

Vortex

Japheth,

I am afraid the MS COFF file format specification doesn't provide us enough information to build import libraries mixed with static code. Do you know someone else worked on this topic?

PBrennick

Japheth,
Thank you for this information.  What is your opinion about unicows.lib?  Also, I created my own project for testing and Hutch's, ZCoder's, Borland's and Digital Mars versions of uuid.lib all failed.  Of the 6 that I tested, the only one that works is from Microsoft's PSDK.  Is that not very interesting?

Paul
The GeneSys Project is available from:
The Repository or My crappy website

japheth

Paul,

unicows.lib looks like it also contains static code. I was unable to link the test app with Borland, but I also tried with Digital Mars and that worked (it's in OMF format). The uuid.lib supplied with PellesC also works. So there are at least 3 which are working. That Hutch's uuid.lib still doesn't work is no big surprise to me, although this problem was reported soon after he released the first version of MASM32 with self-created libs.

Japheth