Boolean

Anfängerfragen zum Programmieren mit PureBasic.
BloodyBambus
Beiträge: 11
Registriert: 19.02.2010 15:49

Boolean

Beitrag von BloodyBambus »

Hallo,
Ich benötige eine boolean Variable also eine Variable die entweder 1 oder 0 sein kann.
Es gibt drei arten von Menschen, die einen können Zählen, die anderen nicht.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Boolean

Beitrag von Mok »

Gibts in PB nicht.
Nimm einfach eine Long- oder Word-Variable, die du dann auf #True (1) oder #False (0) setzt.

Edit: Willkommen im Forum :wink:
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Boolean

Beitrag von Kaeru Gaman »

es gibt keine expliziten Booleans in PureBasic.

auch in Anderen Sprachen wird dazu eine Registergröße herangezogen, also .i, niemals ein einzelnes Bit weil es viel zu aufwendig wäre das zu isolieren.

du kannst in PB jeden beliebigen Typ benutzen.
der Test

Code: Alles auswählen

If Value
wird immer auf <> 0 testen, der Test

Code: Alles auswählen

If Not Value
testet auf = 0
dir stehen auch die numerischen Konstanten #True ( =1 ) und #False ( =0 ) zur Verfügung.

Beachte dabei dass And, Or und Not rein logische Operatoren sind,
sie sind nicht dafür ausgelegt, einen Zahlenwert zurückzuliefern der in Berechnungen einfließen kann.

Sogenannte Boole'sche Ausdrücke, die aus einem Vergleich einen Zahlenwert zurückliefern werden nicht von PureBasic unterstützt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
BloodyBambus
Beiträge: 11
Registriert: 19.02.2010 15:49

Re: Boolean

Beitrag von BloodyBambus »

Ich hab jezt aber eine library der ich den Wert übergebe will.
Es gibt drei arten von Menschen, die einen können Zählen, die anderen nicht.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Boolean

Beitrag von Kaeru Gaman »

bitte genauer.

... es ist anzunehmen, dass diese ein Long (32bit) erwartet.
das ist aber kein Versprechen, genaueres kann man nur sagen, wenn man die Lib und die Ausgangssprache kennt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
BloodyBambus
Beiträge: 11
Registriert: 19.02.2010 15:49

Re: Boolean

Beitrag von BloodyBambus »

DirectX library,
C:\WINDOWS\system32\d3d9.dll
Es gibt drei arten von Menschen, die einen können Zählen, die anderen nicht.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Boolean

Beitrag von Mok »

BloodyBambus hat geschrieben:DirectX library,
C:\WINDOWS\system32\d3d9.dll
Hast du schon probiert, ob es funzt, wenn man eine Long-Variable mit Inhalt #True (oder eben #False) an die Funze schickt?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Boolean

Beitrag von Kaeru Gaman »

BloodyBambus hat geschrieben:DirectX library,
C:\WINDOWS\system32\d3d9.dll
welche Funktion? hast du die Beschreibung der Funktion irgendwo online? (MSDN z.B.)
dann gib mir mal den Link, ich les sie mir mal durch und sag dann bescheid.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
BloodyBambus
Beiträge: 11
Registriert: 19.02.2010 15:49

Re: Boolean

Beitrag von BloodyBambus »

ich hab eigentliche keine direkte anleitung für die dll ich habe nur eine vom directX sdk und daraus versuche ich es abzuleiten.

I habe 2 Datien eine main und in der andere sind die structuren defeniert.

Die erste "Main":

Code: Alles auswählen

XIncludeFile "structures.pb"

OpenLibrary(1,"C:\WINDOWS\system32\d3d9.dll")

OpenWindow(1,10,10,300,300,"D3D Test")
OpenConsole()

CallFunction(1,"Direct3DCreate9",32)

d3dpp.D3DPresent_Parameters

d3dpp\Windowed = True
d3dpp\SwapEffect = 0
d3dpp\BackBufferFormat = 0

Repeat
  EventID = WaitWindowEvent()
  
  If EventID = #PB_Event_CloseWindow
    Close = 1
  EndIf
Until Close = 1
und die zweite "Structures":

Code: Alles auswählen

Structure D3DPresent_Parameters
  BackBufferWidth.l ;sollte ein Unsigned integer sein
  BackBufferHeight.l ;sollte ein Unsigned integer sein
  BackBufferFormat.l ;sollte ein D3DFormat sein hab aber in der header Datei gefunden das es auch nur ein Unsigned integer ist.
  BackBufferCount.l ;sollte ein Unsigned integer sein

  MultiSampleType ;sollte ein Multisampletyp sein, vermutlich auch nur ein integer
  MultiSampleQuality.w ;sollte ein MultisampleQuality sein, vermutlich word

  SwapEffect ;Swapeffect, vermutlich integer
  hDeviceWindow.l ;Device Window
  Windowed.l ;sollte ein boolean sein
  EnableAutoDepthStencil.l ;sollte ein boolean sein
  AutoDepthStencilFormat.l ;D3DFormat, vermutlich integer
  Flags.w ;sollte word sein

  ;/* FullScreen_RefreshRateInHz must be zero For Windowed mode */
  Screen_RefreshRateInHz.l ;sollte Unsigned integer sein
  PresentationInterval.l ;sollte UNsigned integer sein
EndStructure
Es gibt drei arten von Menschen, die einen können Zählen, die anderen nicht.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: Boolean

Beitrag von edel »

Flags und MultiSampleQuality ist falsch, das ist ein DWORD (DoubleWord), also 4 Bytes (Long).
BOOL ist 4 Bytes gross, also auch Long, genauso wie MultiSampleType. Der Rest sieht gut aus, zumindest fuer 32 bit.

Suche am besten uber google
z.b.
http://www.google.de/search?as_q=D3DPre ... =&safe=off
Antworten