0
私は、HLAチュートリアルの例を探っています。私は組み立てて実行しようとしましたが、出力を得られませんでした。私はそれを組み立てた後に、それは私に、このエラーを示した:エラーの可能性がある箇所
Error in file "001_HelloWorld.hla" at line 87 [errid:39120/hlaparse.bsn]
Parameter list is missing "raiseAdrs" found in fwd/extern definition.
Near: <<) >>
そしてここでは、例のプログラムの全体のコードです:
program helloworld;
#linker("comdlg32.lib")
#linker("comctl32.lib")
?compileAll := true;
[email protected] := true;
[email protected] := true;
#includeOnce("stdlib.hhf")
#includeOnce("howl.hhf")
const
applicationName := "Hello World";
formX := w.CW_USEDEFAULT; // Let Windows position this guy
formY := w.CW_USEDEFAULT;
formW := 600;
formH := 600;
static
align(4);
bkgBrush_g :dword;
bkgColor_g :dword;
// Form declaration.
// We've got an empty form with no widgets, so this is fairly trivial:
wForm(mainAppWindow);
endwForm
// Must include the following macro invocation to emit the code that the
// wForm macro generated:
mainAppWindow_implementation();
// The following gets called immediately after the main application
// window is created. It must be provided, even if it does nothing.
method mainAppWindow_t.onCreate;
begin onCreate;
end onCreate;
///////////////////////////////////////////////////////////////////////////// //
//
//
// The following is mostly boilerplate code for all apps (about the only thing
// you would change is the size of the main app's form)
//
//
///////////////////////////////////////////////////////////////////////////// //
//
// When the main application window closes, we need to terminate the
// application. This overridden method handles that situation. Notice the
// override declaration for onClose in the wForm declaration given earlier.
// Without that, mainAppWindow_t would default to using the wVisual_t.onClose
// method (which does nothing).
method mainAppWindow_t.onClose;
begin onClose;
// Tell the winmain main program that it's time to terminate.
// Note that this message will (ultimately) cause the appTerminate
// procedure to be called.
w.PostQuitMessage(0);
end onClose;
// When the application begins execution, the following procedure
// is called. This procedure must create the main
// application window in order to kick off the execution of the
// GUI application:
procedure appStart;
begin appStart;
push(esi);
// Create the main application window:
w.GetSysColor(w.COLOR_MENU);
mov(eax, bkgColor_g);
w.CreateSolidBrush(eax);
mov(eax, bkgBrush_g);
mainAppWindow.create_mainAppWindow
(
applicationName, // Window title
w.WS_EX_CONTROLPARENT, // Need this to support TAB control selection
w.WS_OVERLAPPEDWINDOW, // Style
NULL, // No parent window
formX, // x-coordinate for window.
formY, // y-coordinate for window.
formW, // Width
formH, // Height
bkgColor_g, // Background color
true // Make visible on creation
);
mov(esi, pmainAppWindow); // Save pointer to main window object.
pop(esi);
end appStart;
// appTerminate-
//
// Called when the application is quitting, giving the app a chance
// to clean up after itself.
//
// Note that this is called *after* the mainAppWindow_t.onClose method
// executes (indeed, mainAppWindow_t.onClose, by posting the quit message,
// is what actually causes the program to begin terminating, which leads
// to the execution of this procedure).
procedure appTerminate;
begin appTerminate;
// Clean up the main application's form.
// Note that this will recursively clean up all the widgets on the form.
mainAppWindow.destroy();
w.DeleteObject(bkgBrush_g);
end appTerminate;
// appException-
//
//
// Gives the application the opportunity to clean up before
// aborting when an unhandled exception comes along:
procedure appException(theException:dword in eax);
begin appException;
raise(eax);
end appException;
// The main program for a HOWL application must simply
// call the HowlMainApp procedure.
begin helloworld;
HowlMainApp();
end helloworld;
私は問題を解決するためにどのような私ができるしようとしたが、それを解決することができませんでした。
ご協力いただき、ありがとうございます。
イムにそれを作る:高レベルのアセンブリ言語イムので、私はそれを正しく行ったかどうかはわかりませんが、それは私の上でうまく動作しますが –
ありがとう。それは私のためにも働いた:D –