Seite 4 von 4

Verfasst: 05.11.2006 14:38
von Metaller
Du hast es richtig ergoogled :D Es handelt sich dabei um Flugsimulation und im speziellen un die "Inter-Process Communication" (IPC).

Verfasst: 05.11.2006 15:06
von KeyPusher
@Metaller:
mir scheint, das du nur beispiele verwendest und dich nicht wirklich mit der materie auseinander setzt. ok, kann man machen. dann wirst du aber immer mal wieder daran scheitern programme aus einer anderen programmiersprache umzusetzen. fange wir mal hiermit an:

Code: Alles auswählen

in PB
  m_msg = RegisterWindowMessage_(#MSGNAME1)
  If (m_msg = 0)
    *pdwResult = #ERR_REGMSG
    ProcedureReturn
  EndIf
was soll das?

zu RegisterWindowMessage_. laut api ist der zu verwendene parameter ein pointer auf einen null-terminierten string. wo kommt die konstante #MSGNAME1 her? das wird nie und nimmer ein pointer sein.
ok, sollte RegisterWindowMessage_ =0 sein ist der fehler laut api mit GetLastError ( in PB ein _ anhängen) zu 'erfragen'.

eine WindowMessage würde also wie folgt registriert:

Code: Alles auswählen

  m_msg = RegisterWindowMessage_("meine nachricht")
  If (m_msg = 0)
    rwmResult = GetLastError_()
  EndIf
#MSGNAME1 sollte also ein string sein und zwar einer der in den programmen die miteinander kommunizieren wollen, identisch ist. warum? kannste hier nachlesen:

ERR_REGMSG kann keine konstante sein. das macht gar keinen sinn. wenn es eine fehlermeldung wäre, würde es ja bedeuten, das es nur einen möglichen fehler bei RegisterWindowMessage gäbe.

nein, es hilft nix. du musst dich schon mit der WinAPI bzw. mit dem was du zum erreichen deines ziele benötigst auseinandersetzen.

und ob du jetzt c++ lernst oder pb oder eine andere programmiersprache ist egal. du wirst nicht da rum herrum kommen dich mit den grundlagen (bei windows eben die api) zu beschäftigen, wenn du vom verwenden von beispielen bzw. vom anpassen von beipsielen wegkommen willst. so wirst du nie wirklich verstehen warum was funktioniert, wie mir auch deine ersten beispiele hier in diesem thread gezeigt haben.

hinzu kommt, das man nur dann ein programm von zum beispiel c++ nach pb portieren kann, wenn man auch c++ versteht. wie sonst soll man wissen, was der c++ code bedeuten soll? alternativ 'reicht' die aufgabenstellung. dann aber ist es kein portieren mehr, sondern eine neu-programmierung.
Keine Sprache löst dein Problem. Du löst das Problem. Die Sprache ist nur Werkzeug.

Verfasst: 05.11.2006 15:11
von edel
#MSGNAME1 ist ein String , das stimmt auch alles (von Sachen wie
pdwResult mal abgesehen) soweit und funktioniert auch, zumindest
bei dem Schnipsel den ich im anderen Thread gepostet hatte. Aber
mit solchen kurzen Ausschnitten ist es eh schwer zu sagen wo der
Fehler liegt.

Verfasst: 05.11.2006 15:35
von Metaller
1. Danke für die Hinweise

2. Erstmal bitte keine Ausschnitte aus dem Gesamten zitieren. Dadurch bekommt es gleich einen anderen Sinn.

3. Es ist vollkommen egal ob ich der RegisterWindowMessage_ eine Konstante übergebe oder einen Pointer auf einen String. Es kommt beides auf's gleiche raus.

4. Ich kopiere nicht irgendwelche Codes hin und her, sondern schreibe sie neu (nicht mit abtippen verwechseln).

5. Ich habe mich schon lang und breit mit der WinAPI und den Befehlen die ich daraus verwende auseinandergesetzt.

6. Es ist erstmal vollkommen egal ob ich die Fehlermeldung bei einer Nicht-Registrierung, also bei einem Fehler, den Fehler einem Zeiger übergebe, den Fehler per #False zurückgebe, den Fehler per GetLastError_-Abfrage und, und, und, da es in meinem Programm nicht zu einem Fehler kommt und die IF-Bedingung False ergibt. Die Auswertung der Fehler bleibt dem Programmierer überlassen, soweit es die Funktion erlaubt.

7. Meine Grundlagen in C++ oder VB sind für die Quelltexte voll und ganz ausreichend, wenn man bei den Quelltexten bei einer Version der Programmiersprache geblieben wäre ;)

Bitte nicht falsch verstehen was ich gerade geschrieben habe. Ich habe mich wirklich sehr stark mit dem Problem auseinandergesetzt. Ich bin auch keiner der sich hinsetzt und sag "schreib mir das Programm mal fertig". Ich möchte auch verstehen wie das Programm funktioniert.

Verfasst: 05.11.2006 15:37
von Falko
@edel, du sagst es. Ich kann mir im Bezug auf Hardware so auch nix darunter vorstellen ohne irgendwie den gesamten Source zu sehen.
Was nützen einem nur Declares und Constanten, ohne den source zu kennen.
Da könnte man lange raten bis man zum Gewünschten kommt.

@Metaller, vielleicht wäre es für Dich und uns allen einfacher, wenn man
deinen Source (sei's C++ etc.) sehen kann, was du da haben musst.
Ich glaube schon, das hier einige C-freaks dir sehr wohl weiterhelfen könnten, damit auch du merkst wie gut PB wirklich ist.

In Sachen ASM, wenn ich dich richig verstanden habe, kennst du dich damit sehr gut aus.
Wie hast du das mit den ASM-Schnipseln im PB - source eingebaut? Einmal
kann man das z.B. ein einfaches mov... schreiben. Aber soweit ich weis, gibt es in PB auch die Möglichkeit,
wenn man unter Compilereinstellungen die InlineASMUnterstützung einschaltet auch mit !mov usw. nutzen kann.
Unter Google findest du TASM bzw. FASM der diesen ASM code auf korrekte Syntax etc. testen kann.
Eine Hilfe dazu findest du auch auf PureArea.net, welche Befehle alle genutzt werden können.
Dazu muss ich aber sagen, das ich mit ASM nicht viel am Hut habe. Eine direkte PN auf speziellen Sachen dazu könntest du z.b. an freak schicken,
der dir dabei auch weiterhelfen würde.

Verfasst: 05.11.2006 15:59
von Thorium
Falko hat geschrieben:
Wie hast du das mit den ASM-Schnipseln im PB - source eingebaut? Einmal
kann man das z.B. ein einfaches mov... schreiben. Aber soweit ich weis, gibt es in PB auch die Möglichkeit,
wenn man unter Compilereinstellungen die InlineASMUnterstützung einschaltet auch mit !mov usw. nutzen kann.
Unter Google findest du TASM bzw. FASM der diesen ASM code auf korrekte Syntax etc. testen kann.
Eine Hilfe dazu findest du auch auf PureArea.net, welche Befehle alle genutzt werden können.
Das stimmt, wenn du vor den ASM-Befehl ein Ausrufezeichen schreibst (!), wird der ASM-Code nicht von PureBasic verarbeitet und geprüft, er wird direkt an den Assembler übergeben. Dadurch kannst du alle Features von FASM auch in PB nutzen.

Verfasst: 05.11.2006 23:34
von Metaller
Wer eine schnelle Mark verdienen möchte, der kann sich das mal durchlesen und mir eine PM schicken: http://www.purebasic.fr/german/viewtopic.php?t=10685

Re: [V] PureBasic

Verfasst: 06.11.2006 00:18
von hussi
Metaller hat geschrieben:Ich möchte meine PureBasic Version verkaufen, da sie meinen Anforderungen nicht nachkommt :( Sie ist eine Woche alt und voll Update fähig. Bitte meldet Euch bei mir per PM. Danke.

Schönen Gruß... Metaller
Also ich persönlich konnte mir als Laie schon einige Programmiersprachen anschauen.
So schnell und so einfach wie mit PB habe ich noch nie ein brauchbares Ergebnis erzielen können. :allright:
Also wenn ich PB noch nicht gekauft hätte, würde ich Dir es liebend gern abkaufen. :roll:

VG Hussi