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:
c:\HLA
c:\Radasm
c:\Masm
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

peace
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'
Stop.

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.

Peace
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 2.0.3.2...comctl32.hhf 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'
Stop.

Make error(s) occured.
Posted on 2003-08-26 12:06:31 by Damius
Hi
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

peace
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:

http://webster.cs.ucr.edu/Page_win32/WindowsAsmPgm/html/Ch04.html

Cheers,
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" )


static
hInstance: dword;
CommandLine: string;

readonly

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 );
@nodisplay;
@stdcall;

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 );

else

// 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 );

endif;

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
);
@nodisplay;

var
wc: w.WNDCLASSEX;
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 );
w.CreateWindowEx
(
0,
ClassName,
AppName,
w.WS_OVERLAPPEDWINDOW,
w.CW_USEDEFAULT,
w.CW_USEDEFAULT,
w.CW_USEDEFAULT,
w.CW_USEDEFAULT,
0,
0,
hInst,
NULL
);
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.

forever

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

endfor;
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:

http://www.asmcommunity.net/board/index.php?topic=12998
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:
http://webster.cs.ucr.edu/Page_hla/WhitePapers/DoingUnits.html

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.
Cheers,
Randy Hyde
Posted on 2003-08-28 09:52:17 by rhyde