Juniors WorkstationLidos BerlinComputer PassDies und Das
Nutzungsbedingungen    Datenschutz    Impressum       Kontakt        Registrieren       <== zurück zur Startseite    
 
  Lernen durch Lehren
 
  LDL - Wissenswertes
  LDL - Hardwaretests
  LDL - Softwaretests
  LDL - Tipps & Tricks
  LDL - Workshops
 


  Profan² Einsteiger FAQ 7.5
 
  Profan² Einsteiger FAQ 7.5
  Profan² an die Schulen
  Profan² Script - FAQ
  Profan² Erweiterungen
  Profan² Helferlein
  Profan² Quellcode
 


  HTML Einsteiger FAQ 4.07
 
  HTML Einsteiger FAQ 4.07
  HTML indirekte Fragen
  kleine JavaScript FAQ
 


250 MB mit PHP / MySQL
 
Sie suchen noch Webspace, der kosten- und werbefrei ist, PHP (5.x) und MySQL (3.x) unter- stützt ...

Sie haben Fragen und benötigen Antworten
 
Das verstehen wir - und genau aus diesem Grund haben wir versucht, auf Ihre (am häu- figsten) gestellten Fragen zu antworten.
 
Lern- und Lehrbereich: Juniors Workstation
 
   einen Beitrag auswählenzum Anfang eine Seite zurück  eine Seite vor zum Ende     
   Bereich Kennung Zuordnung Klick Titel 
11  Workstation FAQ Profan Profan-FAQ81239  Profan² - eine Programmiersprache Profan-FAQ - Profan² - eine Programmiersprache
12  Workstation FAQ Profan Profan-FAQ34096  Profan² - dieser Name steht für ein Programmiersystem Profan-FAQ - Profan² - dieser Name steht für ein Programmiersystem
13  Workstation FAQ Profan Profan-FAQ36091  Profan² - eine Scriptsprache Profan-FAQ - Profan² - eine Scriptsprache
14  Workstation FAQ Profan Profan-FAQ36105  Profan² - eine Datenbank-Sprache Profan-FAQ - Profan² - eine Datenbank-Sprache
15  Workstation FAQ Profan Profan-FAQ33689  Profan² - Versionen im Download Profan-FAQ - Profan² - Versionen im Download
16  Workstation FAQ Profan Profan-FAQ37005  Was sind Ereignisse? Profan-FAQ - Was sind Ereignisse?
17  Workstation FAQ Profan Profan-FAQ34743  Was ist eine Multimedia-Schnittstelle? Profan-FAQ - Was ist eine Multimedia-Schnittstelle?
18  Workstation FAQ Profan Profan-FAQ39779  Was ist und enthält eine Windows-Nachricht? Profan-FAQ - Was ist und enthält eine Windows-Nachricht?
19  Workstation FAQ Profan Profan-FAQ35358  Definitionen, Funktionen und Operatoren unter Profan² Profan-FAQ - Definitionen, Funktionen und Operatoren unter Profan²
33  Workstation FAQ Profan Profan-FAQ38112  Einiges über Variablen und Platzhalter ... Profan-FAQ - Einiges über Variablen und Platzhalter ...

135 registrierte Beiträge gefunden; davon werden aktuell 10 angezeigt. 

 
   Profan² 16-Bit ruft 32-Bit-Windows-API

Zugegeben, ganz einfach ist das Problem, 32-Bit auf einer 16-Bit-Version ausführen zu wollen, nicht. Aber es ist nun auch nicht so kompliziert, daß man es nicht lösen könnte.

Roland G. Hülsmann hat dazu ein Beispiel unter Verwendung der "CALL32.DLL" von Peter Goldes (modifiziert durch Rauben Lichtefeld) zur Verfügung gestellt. Es zeigt u.a. sehr anschaulich, wie man eine Verbindung über das Handle eines Fensters definiert.

Die verwendete "CALL32.DLL" ist eine DLL, die das Rufen von 32-Bit-Routinen aus einer 16-Bit-Anwendung heraus ermöglicht. Zur Vorsicht sei hier nur erwähnt, daß dies natürlich erst auf Systemen ab Windows 95 höher funktioniert (funktioniert auch nicht unter "win32s").

Um eine 32-Bit-Funktion in einer 16-Bit Anwendung mit Hilfe der "CALL32.DLL" aufzurufen, sind generell folgende drei Grundschritte durchzuführen:


  1. muß die "CALL32.DLL" selbst declariert werden:

     Def Declare32(3) * "call32.dll","Declare32","&&&","&"
       Def GetDC(2)     * "call32.dll","Call32","&&","&"
       String FName#,0 = "GetDC"
       String FDLL#,0  = "user32"
       String FPar#,0  = "w"
       Let idGetDC&    = Declare32(FName#,FDLL#,FPar#)
       Let dc&         = GetDC(%hwnd, idGetDC&)


  2. muß die Funktion declariert werden, die benutzt werden soll:
    z.B. über Alias von "Call32", der Funktion (hier "gdi32") und dem Argument (hier "ipi")

       Def PolyBezier(4) * "call32.dll","Call32","&#&&","&"
       String FName#,0   = "PolyBezier"
       String FDLL#,0    = "gdi32"
       String FPar#,0    = "ipi"
       Let idPolyBezier& = Declare32(FName#,FDLL#,FPar#)
       let r& = PolyBezier(dc&, points#, 4, idPolyBezier&)


  3. muß die declarierte "CALL32.DLL" unbedingt wieder entladen werden:

       Def FreeCall32IDs(0) * "call32.dll","FreeCall32IDs","","&"
       Def ReleaseDC(3)     * "call32.dll","Call32","&&&","&"
       let r& = ReleaseDC(%hwnd, dc&, idReleaseDC&)
       FreeCall32IDs()

Eine genaue Beschreibung der "CALL32.DLL" und der im einzelnen zu übergebenden Argumente finden Sie in der Datei "abstract.txt" (leider nur in englisch), die im Download enthalten ist.

==> Download

©2012 Lidos Berlin - alle Rechte vorbehalten.