Seite 1 von 2
Boolean
Verfasst: 19.02.2010 15:54
von BloodyBambus
Hallo,
Ich benötige eine boolean Variable also eine Variable die entweder 1 oder 0 sein kann.
Re: Boolean
Verfasst: 19.02.2010 15:58
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

Re: Boolean
Verfasst: 19.02.2010 16:01
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
wird immer auf <> 0 testen, der Test
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.
Re: Boolean
Verfasst: 19.02.2010 16:04
von BloodyBambus
Ich hab jezt aber eine library der ich den Wert übergebe will.
Re: Boolean
Verfasst: 19.02.2010 16:06
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.
Re: Boolean
Verfasst: 19.02.2010 16:16
von BloodyBambus
DirectX library,
C:\WINDOWS\system32\d3d9.dll
Re: Boolean
Verfasst: 19.02.2010 16:20
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?
Re: Boolean
Verfasst: 19.02.2010 16:29
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.
Re: Boolean
Verfasst: 19.02.2010 16:58
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
Re: Boolean
Verfasst: 19.02.2010 19:39
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