Hi. I have trying to use HLA. When I click in 'Build' button in RadAsm then I got error message: ''Error during process creation nmake build/ What is the nmake file? I have'nt got this...:(
install path:
I have download this from http://webster.cs.ucr.edu/
Posted on 2003-08-25 22:58:32 by Tikhon
Hi tikhon

nmaker is available here : http://asmsource.mybravenet.com/utilities.htm

Posted on 2003-08-26 02:02:28 by mistronr1
Hi mistronr1

wow! one more error :)

NMAKE : fatal error U1073: don't know how to make 'build'

Make error(s) occured.

what for i need nmake? i can compile project without this?
Posted on 2003-08-26 02:35:38 by Tikhon
Try to compile using hla -v file.hla.

Posted on 2003-08-26 03:40:22 by mistronr1
In addition to the previous errors mentioned in this thread, I see that there is also a missing file in the Dialog project included with RadAsm is misssing.

My output with the Dialog project is...

Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

hla -w -c Dialog
Error in file "Dialog.hla" at line 6 :
Could not open include file "comctl32.hhf".
Near: << ) >>

NMAKE : fatal error U1077: 'hla' : return code '0x1'

Make error(s) occured.
Posted on 2003-08-26 12:06:31 by Damius
The file comctl32.hhf is under ..\hla\include, I am using hla 1.54, did you set the path right ??

set hlainc=c:\hla\include
set hlalib=c:\hla\hlalib\hlalib.lib
set include = c:\hla\include;c:\masm32\include
set lib =c:\hla\hlalib
finally set path = %path%;c:\hla;c:\masm32\bin;c:\masm32\lib;c:\radasm

check your invironment variable under my compter/propaties/advanced....
good luck

Posted on 2003-08-26 12:20:07 by mistronr1
Yeah..I tried to find it and it is missing from 1.55, and 1.54. I just finished downloading from Randy's site both versions and neither version (either .zip or .exe install file) had comctl32.hhf.

Seems Randy is hiding the *.hhf files somewhere.....:rolleyes:

Now where, oh where did Randy hide his files? ;)
Posted on 2003-08-26 12:31:45 by Damius
you are right, it's not there, anyway I hope this is not going to make randy mad at me..

I'll includet here...
just change the extension to .hhf
Posted on 2003-08-26 12:41:58 by mistronr1
Since version 1.54 no need to include comctl32.hhf. It is merged into w.hhf
Posted on 2003-08-26 12:55:15 by Green Joe
You might want to read the following concerning
setting up RadASM to work with HLA:


Randy Hyde
Posted on 2003-08-26 13:44:50 by rhyde
Hi. I was compile iczelion's tutorial progmam:

program aSimpleWindow;
#include( "w.hhf" ) // Standard windows stuff.
#include( "strings.hhf" ) // Defines HLA string routines.
#include( "memory.hhf" ) // Defines "NULL" among other things.
#include( "conv.hhf" )

hInstance: dword;
CommandLine: string;


ClassName: string := "SimpleWinClass";
AppName: string := "Our First Window";

static GetLastError:procedure; @external( "__imp__GetLastError@0" );

// The window procedure. Since this gets called directly from
// windows we need to explicitly reverse the parameters (compared
// to the standard STDCALL declaration) in order to make HLA's
// Pascal calling convention compatible with Windows.
// This is actually a function that returns a return result in
// EAX. If this function returns zero in EAX, then the event
// loop terminates program execution.

procedure WndProc( hWnd:dword; uMsg:uns32; wParam:dword; lParam:dword );

begin WndProc;

// If the WM_DESTROY message comes along, then we've
// got to post a message telling the event loop that
// it's time to quit the program. The return value in
// EAX must be false (zero). The GetMessage function
// will return this value to the event loop which is
// the indication that it's time to quit.

if( uMsg = w.WM_DESTROY ) then

w.PostQuitMessage( 0 );
sub( eax, eax );


// If a WM_DESTROY message doesn't come along,
// let the default window handler process the
// message. Whatever (non-zero) value this function
// returns is the return result passed on to the
// event loop.

w.DefWindowProc( hWnd, uMsg, wParam, lParam );


end WndProc;

// WinMain-
// This is the "main" windows program. It sets up the
// window and then enters an "event loop" processing
// whatever messages are passed along to that window.
// Since our code is the only code that calls this function,
// we'll use the Pascal calling conventions for the parameters.

procedure WinMain
hInst: dword;
hPrevInst: dword;
CmdLine: string;
CmdShow: dword

msg: w.MSG;
hwnd: dword;

begin WinMain;

// Set up the window class (wc) object:

mov( @size( w.WNDCLASSEX ), wc.cbSize );
mov( w.CS_HREDRAW | w.CS_VREDRAW, wc.style );
mov( &WndProc, wc.lpfnWndProc );
mov( 0, wc.cbClsExtra );
mov( 0, wc.cbWndExtra );

mov( hInstance, wc.hInstance );
mov( w.COLOR_WINDOW+1, wc.hbrBackground );
mov( NULL, wc.lpszMenuName );
mov( ClassName, wc.lpszClassName );

// Get the icons and cursor for this application:

w.LoadIcon( NULL, val w.IDI_APPLICATION );
mov( eax, wc.hIcon );
mov( eax, wc.hIconSm );

w.LoadCursor( NULL, val w.IDC_ARROW );
mov( eax, wc.hCursor );

// Okay, register this window with Windows so it
// will start passing messages our way. Once this
// is accomplished, create the window and display it.

w.RegisterClassEx( wc );
mov( eax, hwnd );

w.ShowWindow( hwnd, w.SW_SHOWNORMAL );
w.UpdateWindow( hwnd );

// Here's the event loop that processes messages
// sent to our window. On return from GetMessage,
// break if EAX contains false and quit the
// program.


w.GetMessage( msg, NULL, 0, 0 );
breakif( !eax );
w.TranslateMessage( msg );
w.DispatchMessage( msg );

mov( msg.wParam, eax );

end WinMain;

begin aSimpleWindow;

// Get this process' handle:

w.GetModuleHandle( NULL );
mov( eax, hInstance );

WinMain( hInstance, NULL, CommandLine, w.SW_SHOWDEFAULT );

// WinMain returns a return code in EAX, exit the program
// and pass along that return code.

w.ExitProcess( eax );

end aSimpleWindow;

in result program has simple winow... and simple console... i don't need console! I need a little programm. One reason why I uninstall Delhpi and download HLA this size of EXE less then 4kb... Or maybe for this task I need download fasm?
Posted on 2003-08-27 19:45:58 by Tikhon
Compile with -w switch:

hla -w tut01.hla

for more Icz tutes convertion see:

Posted on 2003-08-27 22:56:24 by Green Joe
spasibo (russian)
Posted on 2003-08-28 03:13:49 by Tikhon

in result program has simple winow... and simple console... i don't need console! I need a little programm. One reason why I uninstall Delhpi and download HLA this size of EXE less then 4kb... Or maybe for this task I need download fasm?

If producing small EXEs is your main goal, you
will need to read the following:

Note, BTW, that 12K is probably a good practical minimum for a typical
Win32 program as you'll need code, data, and rdata sections in your
executable files. You *can* merge these sections together (so they
don't consume 4K each in the file), but this slows down the loading and
execution of your program a bit, so its worth is questionable.
Randy Hyde
Posted on 2003-08-28 09:52:17 by rhyde