Page 1 of 1

VB6 Wave File, Pfadlängen Bug mit Win 7 ???

Posted: Fri 08 Jan, 2010 7:39 am
by tschosef
Halli halloooo,

also, seit win7 habe ich mit Wave Files in HE-LS ein problem, wenn der Pfad länger als 127 Zeichen ist.... Daher bitte ich mal um kurze Mithilfe

Folgendes Problem:
HE-Laserscan nutzt für die Widergabe von Wave Files das mmcontrol. Bis jetzt hat das immer gut geklappt.
Seit Windows7 behauptet mmcontrol.tracklenth manchmal, der Song (wave file) hätte die länge = 0
Das wave file wird natürlich auch nicht ab gespielt.

wenn man den Dateinamen "prüft":
me.print mmcontrol.filename, dann wird der korrekte Dateiname angezeigt. Trotzdem "gibts" die Datei angeblich nicht, und HE-LS sagt dann natürlich "Audiodatei nicht gefunden"... obwohl sie das ist.

Mittlerweile habe ich raus gefunden, dass unter win7, 32bit version, offensichtlich ein BUG besteht. Dateinamen die LÄNGER als 127 Zeichen lang sind, werden von mmcontrol einfach "ignoriert", als währe der Dateiname falsch.

Nun habe ich 2 Bitten:

1) könnte das mal jemand verifizieren? ich habe dafür ein kleines Projekt geschrieben:

http://www.dl.he-laserscan.de/MMControl_win7Bug.zip

Ladet euch das mal runter, startet es mit XP UND mit Win7, und lasst es laufen.
Das Beispiel macht folgendes: es kopiert einfach die sound.wav datei in den test ordner als datei "x.wav" .... öffnet diese datei, und spielt diese... dann wird es wieder kopiert als xx.wav... öffnen und spielen usw... je nach betriebssystem geht das bis 256 oder eben nur bis 127 zeichen. (bei mir ist es so)
ist das bei euch auch so?

2) die zweite frage.. hatte ich in einem VB Forum gestellt.. hier wird die wohl eher keiner beantworten können: hat jemand ne idee, was man nun tun könnte? (außer die pfade zu kürzen?) Wenn das ein bug ist, wie könnte man den melden? Wird der überhaupt noch von MS behoben?
der fehler liegt wohl in der Übergabe von strings in der mci32.ocx würde ich mal meinen, oder?


viele Grüße
Erich

Re: VB6 Wave File, Pfadlängen Bug mit Win 7 ???

Posted: Fri 08 Jan, 2010 7:42 am
by tschosef
PS....

wenn das jemand ausprobiert... kopiert den ganzen ordner am besten nach c:\
startet dann die exe datei... die Datei Audio.wav und der ordner TEST müssen vorhanden sein, sonst gehts natürlich nicht.

Re: VB6 Wave File, Pfadlängen Bug mit Win 7 ???

Posted: Fri 08 Jan, 2010 11:28 am
by lucas
Windows 7 32Bit in VirtualBox geht nur bis 128 dann kommt hilfe
Windows XP SP3 32Bit in VirtualBox geht weiter als 135 (bis dort hab ich getestet)
Unter Ubuntu mit Wine gehts auch nur bis 128.
In allen drei Tests lagen
* msvbvm60.dll 6.0.97.82
* MCI32.OCX 6.0.81.69

im gleichen Verzeichnis.

Re: VB6 Wave File, Pfadlängen Bug mit Win 7 ???

Posted: Fri 08 Jan, 2010 12:15 pm
by tschosef
hai hai...

jou, bei mir is die Dateiverson von mci32.ocx = 6.00.8418
aber das wirds wohl nicht ausmachen.

Ubuntu... aha... interessant..... dankeschön

viele Grüße
Erich

Re: VB6 Wave File, Pfadlängen Bug mit Win 7 ???

Posted: Fri 08 Jan, 2010 1:46 pm
by xrayz
Ajo, ich habs auch mal laufen lassen auf diversen Rechnern mit folgendem Ergebnis (alle Systeme nativ, keine VMWare etc.):

-Win XP Pro 32 Bit SP1: 256
-Win XP Pro 32 Bit SP3: 256

-Win 7 Pro 32Bit: 127
-Win 7 Pro 64Bit: 127


Das ist aber so gesehen kein Bug, sondern hängt vermutlich eher damit zusammen was für ein Datentyp Systemintern für den Pfad verwendet wird. Da der Kernel von Win7 ja soweit bekannt, massiv verändert wurde im Vergleich zum XP-Kernel, hat M$ in diesem Zug vermutlich auch hier dran gedreht (warum auch immer).

Re: VB6 Wave File, Pfadlängen Bug mit Win 7 ???

Posted: Fri 08 Jan, 2010 3:47 pm
by tschosef
hai hai..

jou, ein "bug" ist es vielleicht nicht direkt, aber halt ärgerlich... weil einfach keine fehlermeldung kommt.. der Pfad wird angenommen, aber "ignoriert"..... Der User wundert sich dann.. und denkt sich "aber das wave file is doch DAAAAAA!!!"

Nun... Fazit.
es gibt aktuell wohl 2 lösungen
1) einfach ne Warnung wenn pfad länger als 127 zeichen ist
oder
2) einfach was anderes zum abspielen von waves nehmen.

Darauf läufts vermutlich auch raus. Warnung geht zwar, is aber irgendwie unschön. mp3 und co wird ja schon immer mit mediaplayer gespielt...warum also nicht auch wave....
das ganze is ja ein "überbleibsel" aus anfangszeiten.

Gruß derweil
erich