Allereest sorry dat ik wat traag reageer, maar er zijn ineens een zooi dingen die er nu tussen komen.
nee zover ik weet doet Windows dat normaal gesproken niet. het gaat ook maar om een klein deel.
van de 100.000 heb ik maar ongeveer 10 bugreports gekregen mbt slashes. maar toch...
dan ga ik me afvragen wat het zou kunnen zijn. ik heb het iig nooit geleerd hoe je zoiets moet voorkomen.
Defensief programmeren is the key. Zo kun je imo sneller fouten/bugs opsporen.
jep idd. maar als je in je vrije tijd voor de grap tooltjes schrijft neem je iets meer risicos.
in mijn geval gaat het bijvoorbeeld om files op te slaan en op te vragen uit het register, en daar kan natuurlijk geen forward slash inzitten. dus kan je ervan uitgaan dat het een backslash moet zijn.
maar toch is het eigenlijk te bespottelijk voor woorden dat deze aanpak heel soms nodig blijkt te zijn.
ik zal het proberen

• Een succesvol tooltje (interessant, kun je eens linken?)
sorry, maar ik wil hier niet gaan lopen pimpen. is ook niet echt relevant lijkt me
het was meer om aan te geven dat het bij het grootste gedeelte goed gaat (lees: bij bijna iedereen), en bij een paar hele rare dingen gebeuren.
• Wat doet het?
• "Het" werkt niet (wat niet?
ook is dat niet heel relevant.
en het gaat niet over een specefiek probleem waar ik niet uitkom, of zodra ik erachter kom niet op kan lossen.
maar ik leg het iets beter uit bij de volgende quote hoop ik

• Dingen zijn erg vaag (wat voor dingen?)
zoals bijvoorbeeld de forward slashes in het register.
maar zo ben ik ook al eens tegengekomen dat bijv files aanroepen soms wel case sensitive is.
terwijl ik hier met een simpele ShellExecute daar 'fouten' mee mag maken.
en ook op elke computer waar ik ooit zelf achter heb gezeten (met Windows dan..)
• Bij sommige worden ze zo opgeslagen (wat voor sommige? Programma's? Van andere programmeurs? Bestaande? Nieuwe? In ontwikkeling zijnde?)
Kortom, waar wil je heen met je post?
sommige mensen.
maar nogmaals: het gaat hier niet over een specifiek probleem.
hetgeen waar ik heen wil is of er een soort lijst bestaat met dingen die bij ongeveer bijna iedereen goed gaat, maar net niet bij iedereen.
sorry als ik niet heel duidelijk ben, maar dat komt ook omdat ik geen idee heb waarom 'het' heel soms niet werkt.
kan elk programma zijn dus.
een andere eigenaardigheid die ik wel eens tegen ben gekomen:
je gebruikt WritePrivateProfileString om in een INI file te poeren. werkt ook allemaal zonder problemen, maar niet echt helemaal op 1 windows95 computer.
daar lijkt het erop dat ie de waarde die je wegschrijft in een soort queue zet.
uiteindelijk schrijft ie het weg, maar wellicht later dan jij wilt of zelfs nodig hebt.
een messageboxje opgooien of de file openen in notepad is voldoende om het te processen, maar dat is nou niet echt een oplossing

cache flushen etc ook allemaal gedaan voor de zekerheid, maar op die ene computer werkt het gewoon niet echt lekker.
ff een stukje pseudo code
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <stdio.h>
#include <windows.h>
int main()
{
BOOL bGelukt;
WritePrivateProfileString (NULL,NULL,NULL,"C:\\blah.ini"); // voor de zekerheid flushen
bGelukt=WritePrivateProfileString ("Section", "Key", "Value", "C:\\blah.ini");
if(!bGelukt)
{
printf("fout");
exit(1);
}
return(1);
} |
daarbij gaat het dus allemaal goed, en ik krijg dan ook netjes een nonzero terug .
toch heeft ie het niet gedaan op dat moment.
als ik bijvoorbeeld de file open en gewoon in ga lezen heeft ie nog niets weggeschreven.
pas als je de file weer sluit en het daarna opnieuw gaat proberen, dan heeft ie het wel gedaan!
maakt niet uit hoe lang je wacht trouwens.
en nee, de file stond op dat moment niet open. en het rare is: waarom schrijft ie het wel weg als je een messagebox erna opgooit?

en alleen een bepaalde Windows95 versie lijkt hier problemen mee te hebben.
dit zijn dus een paar voorbeelden waar ik op MSDN eigenlijk niet echt iets over terug kan vinden waar ik rekening mee moet houden.
maar het feit dat ik al een paar van die eigenaardigheden tegen ben gekomen geeft me het idee dat er vast nog wel een zooi mensen zijn die zulke dingen hebben meegemaakt.
als je een programma schrijft en die aan 3 man geeft zul je waarschijnlijk niet zo snel ermee te maken krijgen.
Wellicht doe ik hier en daar wat verkeerd, en is het gedeeltelijk op te lossen door defensief te proggen.
maar dan nog.. als het bij zoveel mensen wel goed werkt maken vast meer programmeurs diezelfde fouten, en is er ook wel een soort van checklist om dit soort dingen te voorkomen.
[
Voor 4% gewijzigd door
ZaZ op 02-05-2005 06:10
]