Seite 2 von 5

Verfasst: 12.07.2007 17:17
von N00B
:lol:

Das Selbe Problem hab ich auch, der Debugger zeigt nicht mal in welcher Zeile das Problem auftritt :cry:

Kann da Bitte einer von den Profis hier helfen ?

Ich bin nur ein Noob :freak:

Verfasst: 12.07.2007 18:15
von legion
dysti hat geschrieben:Hey,
im ersten Beispiel bekomme ich ein "Invalid Memory Access"
und im zweiten Beispiel in der Zeile "CALL SYS_CopyString" ein "undefined symbol".
Wie bekomme ich die Errors weg. Von ASM keinen Schimmer.
(Pb 4.02)
Hallo !
Der Code dürfte rechnerspezifisch sein. Funktioniert einwandfrei auf meiem
alten Celeron, am neuen DualCore kommen genau diese Fehler.
Oder es liegt am schnelleren DDR2 RAM !

Lg. Legion

Verfasst: 12.07.2007 18:59
von N00B
hmm ich hab enn Dual Core.

Mist.

Hab nur Ärger damit :cry:

Will meinen alten Athlox 2400 zurück mit dem hatte ich nie solche Probleme :|

z.B startet der altbekannte RegCleaner (die Freeware, von dem Hersteller von jv16 Powertools) auf dem dämmlichen Dual Core Mist den ich hab nicht mehr.

Es startet zwar in der Prozessliste, aber das war es dann auch schon.

Schalte ich dann in den Kompatiblitätsmodus für ein Win vor 2k das nur eine CPU nutzt, startet es und stürtzt bei der Durchsuchung der Registrierung ab.

:|

Warscheinlich da es bei dann nach Win98/Me Schlüsseln sucht die es einfach nicht gibt.

Verfasst: 13.07.2007 05:17
von real
Was mich bei dem Code wundert ist, dass er in Assembler geschrieben ist. Da darin lediglich API-Aufrufe zur Umsetzung genutzt werden kann man das auch in PureBasic selbst machen.

Ich hab übrigens auch einen Dual Core (leider von der falschen Firma). Hab aber weder Vorteile noch Nachteile ausmachen können.

Verfasst: 13.07.2007 08:17
von DarkDragon
real hat geschrieben:Was mich bei dem Code wundert ist, dass er in Assembler geschrieben ist. Da darin lediglich API-Aufrufe zur Umsetzung genutzt werden kann man das auch in PureBasic selbst machen.
Tjo wärst mal früher hier gewesen. MLK hatte 2-3 Codes veröffentlicht nur mit Assembler, obwohl diese auch in PureBasic möglich gewesen wären. Er hat damals als Begründung angegeben, dass er gerade Assembler lernt.

Verfasst: 13.07.2007 21:16
von legion
real hat geschrieben:Was mich bei dem Code wundert ist, dass er in Assembler geschrieben ist. Da darin lediglich API-Aufrufe zur Umsetzung genutzt werden kann man das auch in PureBasic selbst machen.
z.B. genau so ...

Code: Alles auswählen

Procedure$ GetHostIP(Host$)
 THostinfo = gethostbyname_(Host$)
 If THostinfo <> 0
  CopyMemory (THostinfo, Hostinfo.HOSTENT, SizeOf(HOSTENT))
  While PeekL(Hostinfo\h_addr_list+AdressNumber*4)
   IPAddress = PeekL(Hostinfo\h_addr_list+AdressNumber*4)
   AdressNumber+1
  Wend
 EndIf
 ProcedureReturn StrU(PeekB(IPAddress),0)+"."+StrU(PeekB(IPAddress+1),0)+"."+StrU(PeekB(IPAddress+2),0)+"."+StrU(PeekB(IPAddress+3),0)
EndProcedure

InitNetwork()
MessageRequester("IP-Adresse", GetHostIP("www.purearea.net")) 

Verfasst: 14.07.2007 11:18
von N00B
Ok aber der Code hat ja auch nichts mit nem Timeout zu tun <)

Denn mit Purebasic selber kriegt man das anscheinend nicht hin, da muss so´n Winapi Zeuch benutzt werden.

Verfasst: 14.07.2007 14:27
von mk-soft
AMD Athlon(tm) 64 X2 Dual Core Prozessor 4400+

Code läuft nicht unter PB v4.02 aber unter PB v3.94.
Liegt also nicht am Prozessor.

Verfasst: 14.07.2007 15:02
von N00B
Mist :-(

Brauche ein Threadsicheres PB :-(

Somit bringt mir der Code 0 :(

Verfasst: 14.07.2007 15:53
von mk-soft
Bei PB v4.0 wird nicht mehr die ConnectionID (Handle) zurück gegeben, sonder eine interne ID.

Erst mit "Ergebnis = ConnectionID(Verbindung)" hat man das Handle (Socket).

Der Code liefert aber die Socket.
http://www.purebasic.fr/english/viewtop ... sa+timeout