2017-05-11 11 views
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; 

私は問題を解決するためにどのような私ができるしようとしたが、それを解決することができませんでした。

ご協力いただき、ありがとうございます。

答えて

1

こんにちは私はあなたのものと同じ問題を抱えています 私はこれを思いついて、うまくいきます。

後藤ライン(私の場合ライン152で)この行:

procedure appException(theException:dword in eax); begin appException; raise(eax); end appException;

HLAにまだ初心者

procedure appException; begin appException; raise(eax); end appException;

+0

イムにそれを作る:高レベルのアセンブリ言語イムので、私はそれを正しく行ったかどうかはわかりませんが、それは私の上でうまく動作しますが –

+0

ありがとう。それは私のためにも働いた:D –

関連する問題