Seite 1 von 5

Übersetzung aus C++

Verfasst: 22.04.2009 21:39
von E-P-S
Hallo, kann mir ein C++ Kenner mal helfen dies hier nach PB zu übersetzen?

Code: Alles auswählen

BBDECL HRESULT BBCALL SomeFunction(unsigned int buffer, unsigned int srcFrame)
{
  HRESULT hr;
  if(buffer==0) return 1;
  buffer = (unsigned int) *((int*)(buffer+4));
  buffer = (unsigned int) *((int*)(buffer+(4 * srcFrame)));

  IDirectDrawSurface7 *srcSurf = NULL;
  srcSurf = (IDirectDrawSurface7*) *((int*)(buffer+12));
Vielen, herzlichen Dank

Verfasst: 22.04.2009 22:14
von Fluid Byte

Code: Alles auswählen

Procedure SomeFunction(buffer,srcFrame)
	If buffer = 0 : ProcedureReturn 1 : EndIf
	
	buffer = buffer + 4
	buffer = buffer + (4 * srcFrame)
	
	*srcSurf.IDirectDrawSurface7 = #Null
	*srcSurf = buffer + 12
EndProcedure
Gekürzt:

Code: Alles auswählen

Procedure SomeFunction(buffer,srcFrame)
	If buffer = 0 : ProcedureReturn 1 : EndIf	
	buffer + 4
	buffer + (4 * srcFrame)	
	*srcSurf.IDirectDrawSurface7 = buffer + 12
EndProcedure

Verfasst: 22.04.2009 22:46
von E-P-S
da fragt man sich doch wozu die in C++ so viele Klammern brauchen....

ich bedanke mich heftigst.

Verfasst: 22.04.2009 23:40
von Fluid Byte
E-P-S hat geschrieben:da fragt man sich doch wozu die in C++ so viele Klammern brauchen....
Weiß ich auch nicht aber viele der Klammern sind für die Typendeklaration. Also (unsigned int), (int*), (IDirectDrawSurface7*) usw. Fast alles hat seinen eigen Variablentyp wie bspw. für Fenster HWND. Soll wohl der Fehlervermeidung dienen aber ist in meinen Augen völlig überflüssig. Denn in der Realität gibt es nur einen überschaubaren Grundsatz an Variablentypen wie Byte, Word, Long, Quad, Float, etc.

Verfasst: 23.04.2009 00:32
von ZeHa
Nee das hat schon seinen Sinn. Vielleicht nicht bei kleinen Projekten, aber wenn irgendwann 20 Leute an einem 50.000+ Zeilenprojekt arbeiten, dann ist sowas nicht mehr überflüssig.

Verfasst: 23.04.2009 00:35
von Kaeru Gaman
.... läßt sich ja in PB durchaus auch realisieren...

Verfasst: 23.04.2009 01:01
von ZeHa
Was nun, Typsicherheit oder große Projekte?

Verfasst: 23.04.2009 01:21
von Fluid Byte
ZeHa hat geschrieben:Nee das hat schon seinen Sinn.
"hat schon seinen Sinn" ist kein Argument ...
ZeHa hat geschrieben:Vielleicht nicht bei kleinen Projekten, aber wenn irgendwann 20 Leute an einem 50.000+ Zeilenprojekt arbeiten, dann ist sowas nicht mehr überflüssig.
Sprichst aus Erfahrung wa'? <)

Im Ernst, die Größe des Projektes hat damit absolut gar nichts zu tun. Ich habe schon Projekte gehabt die an die 10000+ Zeilen gingen wie bspw. ein Grafikprogramm. Nie hätte ich gesehen wo dieser "Typen-Wirrwarr" von Nutzen gewesen wäre. Wie ich sagte, in meinen Augen ist das wieder so ein "Feature" das niemand braucht. Denn es gibt real nunmal nur eine geringe Menge an Basistypen. Genau wie es schon immer in PB war. Und es wurden in all den Jahren auch sicher große Projekte geschrieben und auch bestimmt mit mehr als mit einer Person. Vermisst irgendjemand dieses Feature? Nein. Hat es uns geschadet oder unsere Produktivität eingeschränkt? Ebenfalls nein.

Verfasst: 23.04.2009 01:24
von ts-soft
ZeHa hat geschrieben:Was nun, Typsicherheit oder große Projekte?
Beides :mrgreen:

Code: Alles auswählen

Macro hWnd
  i
EndMacro

Define.hWnd bla

bla = GetForegroundWindow_()
Debug bla

Verfasst: 23.04.2009 01:25
von Kaeru Gaman
ich meine beschreibende Typen...

aber ob man die wirklich braucht, ist jedem Team selber überlassen.
beschreibende Variablennamen sind auch hilfreich.
wenn ich hWnd.i schreibe, weiß auch jeder, dass es ein Window-Handle ist.

bei bla.hWnd sieht man das später im kot nicht mehr.