Toon posts:

[vb]run-time error 126

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een klein programma geschreven in vb die met winsock control 6.0 via udp een klein berichtje verstuurd.

Het programma loopt perfect op een nt (win2k) machine maar jammer genoeg niet op een win95 pc.
Ik krijg telkens het programma voor de eerste maal loopt een run-time error 126.
Wanneer ik dan op debug klik kom ik bij de lijn "ws.SendData data" terecht. (data is de string die de tekst bevat die moet doorgestuurd worden.)

De data komt ook effectief toe bij de client de eerste maal.
Wanneer ik zonder iets te wijzigen het programma terug opstart loopt het wel normaal, ik kan dus gewoon berichten versturen zoals het moet.
Ik heb het getest zowel lokaal als via een lan, beide geven hetzelfde probleem.

Ik heb al gesearched maar niets gevonden en de enige oplossing die google mij bied is error 126 te catchen.
code:
1
2
3
ErrorHandler:
  If Err.Number = 126 Then 
    ....

Maar zelfs dat lukt niet de eerste keer. Die fout blijft komen.

Wie kan mij hierbij helpen ? En vooral wie kan mij informatie bezorgen over die fout ??

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub verstuur(ByVal data As String)
  ws.Close
  ws.Protocol = sckUDPProtocol
  ws.RemoteHost = "192.168.1.120"
  ws.RemotePort = 1022
  ws.SendData data

  ErrorHandler:
    If Err.Number = 126 Then
       MsgBox "foutje"
       Resume Next
    End If
  End Sub

Private Sub con_Click()
  verstuur ("hallo")
End Sub

Verwijderd

Eerste probleempje wat mij opvalt is dat je altijd in je Errorhandler komt. Das nie nodig. En van wat voor type is ws? Ik neem een object of zo.

Waarom sluit je die ws eerst om vervolgens de properties te vullen en dan de Senddata method aan te roepen?

Wie is de bakker van ws en kan je daar terecht voor hulp (site)?

Verwijderd

je kunt on error resume next gebruiken of on error goto ErrorHandler

Verwijderd

Topicstarter
Verwijderd schreef op 27 November 2002 @ 09:56:
Eerste probleempje wat mij opvalt is dat je altijd in je Errorhandler komt. Das nie nodig. En van wat voor type is ws? Ik neem een object of zo.
klopt, is aangepast maar probleem blijft.
ws = het winsock object die de data verstuurt
Waarom sluit je die ws eerst om vervolgens de properties te vullen en dan de Senddata method aan te roepen?
Dat was omdat ik terwijl het programma loopt door op een knop te drukken telkens die procedure verstuur oproep. En telkens worden die properties terug ingevuld, niet echt handig, en als je die niet closed krijg je een andere error daarop. Maar ik heb het aangepast. De properties worden goed gezet in de form load nu. Er staat enkel ws.senddata data + error handling in de sub verstuur nu.
Wie is de bakker van ws en kan je daar terecht voor hulp (site)?
bakker is Microsoft.
Kheb net voor de x-de maal op de msdn site gaan kijken naar de error events van winsock control ... 126 staat er niet tussen

on error resume next vangt de fout ook niet op.

de winsock update is geinstalleerd

update :
Wanneer ik er een .exe van maak dan werkt de error handling wel ... hip hoi.

[ Voor 10% gewijzigd door Verwijderd op 27-11-2002 11:14 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

In een group ergens in Google gevonden:
126 The specified module could not be found. ERROR_MOD_NOT_FOUND
If that is the error, (and this is a system error there is nothing
listed for runtime error 126 ) then it sounds like you have a winsock
conflict.
Al met al lijkt het er dus op dat je een versie van Winsock gebruikt o.i.d. die niet op Win95 wil draaien. Heb je de Win95 PC geupdate met de laatste Winsockdrivers?

My personal website


Verwijderd

Ik las ook dat het winsock control asynchroon is. Het kan dus betekenen dat de connectie dus nog niet helemaal gereed is. Je kan volgens mij wel de state van je control afvragen.

code:
1
2
do while ws.State <> sckOpen
loop

Verwijderd

Topicstarter
pc is geupdate ...

udp heeft geen connectie nodig. Die stuurt er maar op los en kan het niet echt schelen of het toekomt of niet. Dus ws.state is nooit open.

Ik kan de fout nu wel catchen das toch al iets. Mooi staat het wel niet maja ....
Is er niemand die weet wat die fout veroorzaakt ? Want zoiets moet in mijn verslag komen alleen kweet niet wat de oorzaak is.

Verwijderd

WS= winsock natuurlijk,... je moet eerst een BIND of CONNECT doen...
ik werk nooit met UDP protocol... dus weet niet hoe het daarwerkt,... volges
mij bind...

Maar met TCP protocol is het CONNECT... je moet iig zorgen dat je WS.state=7
pas dan ken je datagrammen verzenden... anders krijg je geheid runtime errors ja

Verwijderd

Topicstarter
bind = luister naar poort nr x en eventueel ip ...
Dat gebruik ik bij de "client"
connect is voor tcp

ws.state=7 == connected
udp is connectionless ! dus state 0

Het programma werkt wel degelijk ! Alleen niet op een win95 pc.

Verwijderd

Oeps, beetje dom van mij UDP is inderdaad connectieloos. Staat in de opdrachtomschijving dat ie op w95 moet draaien? Zo nee, niet eens vermelden!
Pagina: 1