von dll aus auf aktuelles fenster zeichnen ?

Anfängerfragen zum Programmieren mit PureBasic.
xverbatim
Beiträge: 88
Registriert: 20.08.2005 20:19

von dll aus auf aktuelles fenster zeichnen ?

Beitrag von xverbatim »

Hallo,

irgendwie läuft das nicht so,

ich versuche von visual basic eine dll aufzurufen, die ich in purebasic geschrieben habe und diese soll mir nur irgendetwas auf das hauptfenster zeichnen, aber irgendwie läuft das alles nicht...

wie kriege ich denn die screenID?wo muß ich das denn einsetzen ?

wäre nett, wenn mir jemand den unteren code so hinbiegt, daß ich einfach auf dem fenster etwas ausgeben kann (von visual basic form1)


noch eine frage, wie kann ich fenster, die ich über eine dll aufgerufen habe, wieder schließen ?


danke im vorfeld +gruß
xverbatim


Code: Alles auswählen

 ProcedureDLL zeichne_irgendwas_screen()
 
  Width=200
  Height=150 

 ; hier die ID ???? 

  OutID = ScreenOutput()
  
    If StartDrawing(OutID)

      x = Width/2
      y = Height/2
      For Radius = Height/2 To 10 Step -10
        Circle(x, y, radius ,RGB(Random(255),Random(255),Random(255)))
      Next
      StopDrawing()  

    EndIf
    
    Repeat : Event = WaitWindowEvent() : Until  Event = #PB_Event_CloseWindow
   
 EndProcedure
 
 
 
Benutzeravatar
Vallan
Beiträge: 223
Registriert: 20.01.2006 19:34
Kontaktdaten:

Beitrag von Vallan »

>OutID = ScreenOutput()

ein fenster braucht Window output() . wie du das allerdings aus VB krigen willst weiß ich nicht,
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

Code: Alles auswählen

ProcedureDLL zeichne_irgendwas_screen(OutID) 
  
  Width=200 
  Height=150 

  
    If StartDrawing(OutID) 

      x = Width/2 
      y = Height/2 
      For Radius = Height/2 To 10 Step -10 
        Circle(x, y, radius ,RGB(Random(255),Random(255),Random(255))) 
      Next 
      StopDrawing()  

    EndIf 
    
    Repeat : Event = WaitWindowEvent() : Until  Event = #PB_Event_CloseWindow 
    
 EndProcedure
Der Screenoutput ist sowiet ich weiß doch immer anders, muss also vom programman die dll übergeben werden
und wenn ich mich nich irre muss in der dll auch initsprite rein
/edit:
/edit 2: vergess das folgende :freak:
(zb so:

Code: Alles auswählen

ProcedureDLL AttachProcess(Instanz)
 initsprite()
ndProcedure
)
Zuletzt geändert von a14xerus am 21.01.2007 20:41, insgesamt 1-mal geändert.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

a14xerus hat geschrieben: und wenn ich mich nich irre muss in der dll auch initsprite rein
(zb so:

Code: Alles auswählen

ProcedureDLL AttachProcess(Instanz)
 initsprite()
ndProcedure
)
PureBasic.chm hat geschrieben:- DirectX Initialisierungsroutinen dürfen nicht innerhalb der AttachProcess Prozedur geschrieben werden.
- ohne Worte - :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Vallan
Beiträge: 223
Registriert: 20.01.2006 19:34
Kontaktdaten:

Beitrag von Vallan »

DA er aber VB zum erstellen und verwalten des fensters verwenden will kann er nicht Windowoutput() (Ja dür fenstter Windowoutput) verwenden...
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

tja.. wenn ich mal alles lesen würde (ich selber hab das noch nie benutzt, ist mir garde nur so eingefallen)
Antworten