| |
|
|
| allô Profaner...
Hab la fois wieder (depuis längerem) quoi merkwürdiges:
sous XP erhalte je chez einer API zeitweise Zugriffsverletzungen, qui je Je ne expliquer peux (sommes aussi très selten et treten scheinbar seulement dans qui compilé EXE sur). chez einer anderen API verweigert cet mir zeitweise sous Windows95 grundlos den Dienst. j'ai den impression, qui ca avant allen Dingen chez APIs passiert, qui sur qui Registry zugreifen ou bien Systemeinstellungen changement.
qui kennt sauf mir encore cet Problem? (Frank peut-être.? Habe [...] avec intérêt gelesen!)
j'ai im Augenblick den unbegründeten le doute, qui cela am Profan Messagehandling liegen pourrait (Roland möge mir verzeihen) - habe qui API un DulcoIF verpasst, après trat qui faute pas plus sur. |
|
|
| |
|
|
|
Frank Abbing | Hi,
um sur cela de mir angesprochene Problem trop venons: Es trat sous Assembler sur, allerdings dedans des Subclassings eines Profan-Hauptfensters. Hab mais dans einem anderen Forum gelesen, cela quelqu'un d'autre oui c'est ca cela gleiche Problem hatte. qui hatte avec Profan mais sûrement rien trop 1faire... |
|
|
| |
|
|
|
| allô Frank...
cela scheint wirklich pas trop meinem Problem trop passen. chez mir gibt es zum une Probleme sous Windows95 avec qui Funktion RegLoadKey, qui zeitweise simple keinen Hive magasin veux et zum anderen sous XP avec qui Funktion LSAEnumerateAccountRights ou bien peut-être qui Funktion LSAFreeMemory, qui zeiweise une Zugriffsverletzung bringt.
qui Probleme treten, comment dit, seulement sous den genannten Betriebssystemen et chez compiliertem Programme sur - äußerst merkwürdig... |
|
|
| |
|
|
|
| |
|
| |
|
|
|
| allô IF...
j'ai ici ne...aucune XP, sur dem je programmieren peux - je konnte c'est pourquoi chez den LSA-Funktionen encore pas testen.
chez RegLoadKey scheint cela Problem u.a. vom air des gesamten Quelltextes abzuhängen. Fügt on irgendwo une la ligne un, tritt qui faute sous Umständen presque gar pas plus sur.
j'ai qui l'affaire avec Fastmode encore pas getestet - j'ai zuletzt direct avant qui besagte Funktion un DulcoIF eingesetzt. Seitdem scheint es trop courir. Merkwürdig... |
|
|
| |
|
|
|
| allô Profaner...
seulement entier kurz - cela Problem liegt doch pas à Profan. Manche APIs sembler extrem aggressiv sur une GetLastError trop réagir, qui pas 0 ist (peut-être. par cela letzt FindNext$ hervorgerufen. je cherche maintenant plutôt là den faute... |
|
|
| |
|
|
|
| cela Problem ist - glaube je - gelöst. qui faute lag beim einem Quelltextschnipsel, den je autrefois sans selbst nachzudenken aus einer Hilfedatei de Uwe Passcal Niemeier übernommen habe: KompilierenMarqueSéparationdef @RegOpenKeyEx(5) !"ADVAPI32","RegOpenKeyExA"
def @RegQueryValueEx(6) !"ADVAPI32","RegQueryValueExA"
def @RegCloseKey(1) !"ADVAPI32","RegCloseKey"
declare Handle#
dim Handle#,4
declare Key#
dim Key#,100
string Key#,0="SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer" Pfad des Schlüssels
declare Name#
dim Name#,100
string Name#,0="NoDrives" Name des Wertes
declare Size#
dim Size#,1
long Size#,0=4 Länge des Wertes: 4 Bytes bei DWord
declare Wert#
dim Wert#,4 Empfangsbereich für Wert: 4 Bytes bei DWord
print @RegOpenKeyEx($80000001,Key#,0,1,Handle#) 0 wenn ok
print @RegQueryValueEx(@Long(Handle#,0),Name#,0,0,Wert#,Size#) 0 wenn ok
print @RegCloseKey(@Long(Handle#,0)) 0 wenn ok
print hex$(long(Wert#,0)) Wert als Hex$ ausgeben
dispose Handle#
dispose Key#
dispose Wert#
dispose Name#
dispose Size#
waitkey
Dabei wird qui Variable pour qui Taille des dimensionierten Bereichs (size#) avec 1 dimensioniert. Sowohl Long comme aussi Windows selbst mettons mais une 4 Byte Wert. Dabei volonté peut-être. Bereiche überschrieben, dans denen Variablen stehen, qui je après encore pour autre APIs nutze RegQueryValueEx arbeitet mais korrekt!. si et quoi là überschrieben wird, hängt de qui Speicherorganisation, d.h. vom Aufbau des Programmes et vom OS (bzw. den encore laufenden Programmen) ab => es venez trop Fehlfunktionen im Programme ou bien aussi trop Zugriffsverletzungen, en Ursprung pas logisch trop lokalisieren ist .
Ahnliche Sachen peut aussi Auftreten, si on einer API einer Größeren Bereich pour une variable übergibt comme on auparavant dimensioniert hat. aussi ici meckert Windows zumindestens pas toujours et bringt - je pour Taille des eigenen Programmes, im Hintergrund laufender Programme, OS, Programmstarts etc. - différent Fehlermeldunge, en Ursache pas trop lokalisieren ist!
qui alors avec unerklärlichen Bug, Systemabstürzen, Zugriffsverletzungen... kämpft, sollte absolument qui APIs vérifier, chez denen dans einem paramètre qui Taille eines dimensionierten Bereichs transfert wird.
je hoffe, je peux anderen avec diesem Beitrag heftige Kopfschmerzen ersparen...
Salut
AH |
|
|
| |
|
|
|
| Nochmals: Comme je le disais, pas qui API qui den faute contient pouvoir Probleme, mais irgendwelche puis folgende Programmteile (pour dessus schieb)! |
|
|
| |
|
|