Deutsch
Assembler Forum

Prozeduraufruf erlaubt?

 
- Seite 1 -



Normann
Strübli
Hallo,

vielleicht habe ich es ja irgendwo überlesen, aber sind Prozeduren innerhalb des XPIA-Codes erlaubt?

Geht das? Und wie kann dann die obere Prozedur etwas an die aufrufende übergeben wenn ret nicht erlaubt ist?

Gruß
Normann
 
09.11.2005  
 



 
- Seite 1 -



Normann
Strübli
Aber in der Doku von Frank steht ja auch:

[quote:e9d72de353]Parameters x&, bereich#, addr(string$)[/quote:e9d72de353]
 
09.11.2005  
 




Michael
Wodrich
Dann ändere bitte mal den Namen der Prozedur. Das wollte ich erst mit schreiben, hatte es aber verworfen.
Evtl. hängt es doch mit der Art der Namensgebung zusammen (hier speziell mit dem Wort DWORD).
 
Programmieren, das spannendste Detektivspiel der Welt.
09.11.2005  
 




Normann
Strübli
Nein, das ist es leider auch nicht.
aber trotzdem danke für Deine schnelle Hilfe!

Gruß
Normann
 
09.11.2005  
 



 
- Seite 2 -



Michael
Dell
Also ich würd auf eax als Zähler verzichten und ne Variable einsetzen, etwa so:

Zumindest läuft so das Assemblieren und Linken ausgezeichnet.
Ach so, Scall steht zummindest in der aktuellen Masm Version in der Macro.asm, die in der Basic.inc eingefügt kann nie schaden.

Nachtrag: Oh, hab grad gemerkt das dein Orginal Code auch Funzen Müste zumindest wenn man {$Q} oder so am Anfang stehen hat!
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
10.11.2005  
 



{$q} heisst nur das XPSE nach verrichteter Arbeit sich schließen soll - ohne auf Tastatureingaben zu warten.

Eine Variable statt EAX - hm - Michael hat natürlich recht das Eax (also ax) nicht grad fürs Zählen bedacht war, aber ich persönlich würde aus Performancegründen trotzdem (besonders heutzutage) lieber mit eax Zählen statt mit einer Variable. Sei angemerkt - bei Deinem Code bleibt es wohl unmerklich ob mit Register oder Variable gezählt wird.

Wenn der AsmBlock sich nicht ordnungsgemäß kompilieren/linken lässt - befolge Michaels Tip nur Variablen statt auch Funktionen per Parameters zu übergeben. Ich bin mir nämlich nicht sicher in welcher XPSE-Version ich da das addr bei Parameters unbehandelt lasse.

Salve.
 
10.11.2005  
 




Michael
Wodrich
Tja, vielleicht sollten wir uns angewöhnen die Versionsnummern aller beteiligten Programme parat zu haben, damit man die Fehler nachvollziehen kann.
Obwohl - in einer Rechnerumgebung vollkommen ohne Programmiertools nützt auch das nichts.

Zur Fehlerbehebung jetzt:
alle Tools auf den neuesten Stand bringen (XPSE, XPIA, MASM) und erneut testen. Dann erübrigt sich vielleicht sogar ein Umschreiben des Codes.

Ich glaube, die String2dw steht in zwei Varianten auch in der MASM-Lib. Schau Dir die beiden mal an. Ich rate mal die Namen: s2dw, str2dw, sToDW, StrToDW
Wenn kein Treffer dabei ist: in der Masm-Hilfe sind die Beschreibungen.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
10.11.2005  
 




Frank
Abbing
Hi,

Also ich hab keine Probleme, den Code zu übersetzten. Das liegt hier sicher nur an der verwendeten XPSE-Version.
Deine Assemblercode jedenfalls ist völlig in Ordnung. EAX als Zähler einzusetzen ist auch absolut in Ordnung, auch wenn ECX gebräuchlicher ist. Aber das ist egal.
XPIAs Parameters verkraftet durchaus auch Funktionen. Intern ist es so, das Parameters nachher umgewandelt wird in Profans External. Alles, was External an Parametern verkraftet, schafft also auch Parameters.
Warum XPSE in neueren Versionen eigentlich eingreifen will in XPIAs Parameters, weiss ich auch nicht genau. Normalerweise sollte der Befehl von XPSE links liegen gelassen werden, wie alles in den Assemblerfunktionen. Ich glaube, das hängt mit zukünftigen Erweiterungen zusammen, vielleicht erklärt iF das noch genauer. An XPIA jedenfalls liegts nicht.
 
10.11.2005  
 




Normann
Strübli
Jetzt nicht schlagen!

Es lag am XPIA, war aber meine Schuld

Ich habe nach einer kompletten Neuinstallation das Profan-Verzeichnis meiner Sicherung auf
die Platte zurückkopiert und aus dem Internet die aktuellen Versionen (masm32,XPIA,XPSE) heruntergeladen und installiert.

Hat komischerweise alles funktioniert auch die Beispiele die beim XPIA dabei waren.
(zumindest fast! alle wie ich nun gemerkt habe)

Kurzum, im Profan-Verzeichnis befand sich noch eine alte Version der XPIA.EXE, und die hat der XPSE natürlich der
aktuellen Version, die sich nun im XPIA Verzeichnis befand, vorgezogen.
Hätte ich auch eher drauf kommen können, aber im glauben alles auf dem neusten Stand zu haben vergleicht man
keine Versionsnummern.

Feste Pfadangaben im XPSE hätten hier bestimmt Abhilfe geschaffen, außerdem hat iF so dann eine gewisse Mitschuld

Gruß
Normann
 
10.11.2005  
 



Schuld hab sowieso ich - aber feste Pfadangaben?
 
10.11.2005  
 




Normann
Strübli
@iF: nein, das ist schon ganz Ok, so wie es ist.

Kurze Frage nochmal, folgendes steht ja in der Hilfe des XPIA:
[quote:8fe3def3d0]
Eigene oder andere Bibliotheken (Libs) können sehr einfach dazu genommen werden. Bereits eingebaut sind kernel32, user32, masm32, comctl32, shell32, gdi32, ole32, oleaut32, comdlg32, fpu und winmm. Weitere können selber in die Datei include/basis.inc integriert werden.[/quote:8fe3def3d0]
Ok, hab ich mir gedacht fehlt mir noch die windows.inc.
Also wie beschieben[quote:8fe3def3d0]include D:masm32includewindows.inc[/quote:8fe3def3d0] in die basis.inc eingefügt.

Jetzt werde ich aber im Consolenfenster überhäuft mit Fehlermeldungen à la:
[quote:8fe3def3d0]D:masm32includewindows.inc(7934) : error A2163 non-benign structure redifinition: incorrect initializers : NMREBARCHILDSIZE[/quote:8fe3def3d0] usw.

was ist denn da nu wieder schief gelaufen?
 
10.11.2005  
 




Frank
Abbing
XPIA bindet die windows.inc schon von sich aus dazu. Ist ja keine Lib, nur eine Inc. Doppelt gemoppelt hält halt NICHT immer besser. Manchmal erzeugts auch Fehler
 
10.11.2005  
 




Frank
Abbing
[quote:295287844d]XPIAs Parameters verkraftet durchaus auch Funktionen. [/quote:295287844d]
Mann, Mund wieder zu voll genommen. Immer klappt das doch leider nicht, aber ich habe schon nachgebessert. In der nächsten Version funkioniert (fast) alles
 
11.11.2005  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

13.715 Betrachtungen

Unbenanntvor 0 min.
E.T.01.12.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie