# Fehler in Anwendung - Der Vorgang 'written' konnte nicht auf dem Speicher ausgeführt



## Filone (30. Mai 2005)

Hallo zusammen,

ich habe unter VB 6 eine MDI-Awendung erstellt, die mit einem Intervall von 125ms Socketverbindungen auf ihren Status prüft und darüber hinaus in einem Listview die Daten der Sockets anzeigt (IP, Port, ...).

Linker Mausklick auf ein Listviewelement, bei dem ein PopUpMenu erscheinen soll, Verschieben eines Formulars das nur bei bestehender Verbindung erscheint sowie Auswahl eines Menüs in der Menüleiste führen zu folgender Fehlermeldung unter Windows 2000 :

Picture 

Weiß jemand woran das liegen kann ? Ich vermute eine API dahinter, bin mir aber nicht sicher.

Danke und liebe Grüße,

Pascal


----------



## Orakel (30. Mai 2005)

*Re: Fehler in Anwendung - Der Vorgang 'written' konnte nicht auf dem Speicher ausgefü*

Hi,

würde auch auf einen API Fehler tippen. Könnte ein 0-Wert bei der Übergabe sein. 

Gruß
Das Orakel


----------



## Filone (30. Mai 2005)

Ja, scheint ein NullPointer zu sein. Ich krieg nur nicht raus woher, deswegen frage ich mich schon die ganze Zeit was das Verschieben eines Formulars (sowohl MDI-Parent wie auch frmFileList, die unabhängig von MDI-Parent ist) und das Menü gemeinsam haben.

Und, last but not least, auf XP geht es, auf 2000 nicht.


----------



## Orakel (30. Mai 2005)

*Re: Fehler in Anwendung - Der Vorgang 'written' konnte nicht auf dem Speicher ausgefü*

Naja mal so ins blaue Spekuliert, könnte ich mir vorstellen, dass die W2K-Dll einfach eine ältere Version der von Dir  benutzen API's hat. Ansonsten würde mir nur einfallen, vor dem Aufruf der API's die entsprechenden Parameter auf 0 zu prüfen.

Gruß
Das Orakel


----------



## Filone (1. Juni 2005)

Ich glaub ich habs.

Ich arbeite in VB6 mit Tags (falls Du in einer anderen Sprache programmierst : damit kann man einem Objekt in VB6 einen Wert zuweisen, bspw. ein Listenelement oder sowas).

Wenn ich nun mit der FormsCollection alle Formulare durchlaufe und auf ihren Tag prüfe, ist eins dabei das einen vbNullstring hat - weil es durch die Schleife instanziert wird.

Und genau da scheint der Fehler zu liegen. Ich schaue gleich mal nach.


----------



## Orakel (1. Juni 2005)

*Re: Fehler in Anwendung - Der Vorgang 'written' konnte nicht auf dem Speicher ausgefü*

Hi Filone


> Wenn ich nun mit der FormsCollection alle Formulare durchlaufe und auf ihren Tag prüfe, ist eins dabei das einen vbNullstring hat - weil es durch die Schleife instanziert wird.


Ok vbNullstring würde auf jeden Fall erklären, dass der Verweis auf Adresse 0 im Speicher verweist. Aber Du könntest doch auf jeden Fall das Ursprungsobjekt mit einem im Entwurfsmodus mit einem Sinnvollen Tag versehen. Ansonsten wie ich schon mal erwähnt habe vor dem Aufruf Deiner API die entsprechenden Parameter auf NULL, 0 usw. prüfen.

Gruß
Das Orakel


----------



## Filone (1. Juni 2005)

Die Tags werden erst zur Laufzeit vergeben, weil ich mit API-Sockets Verbindungen eingehe und dann für jede Verbindung eines dieser Formulare anzeigen lasse.

Ich hab dann beim frmFileList_Load-Event das Tag 0 vergeben, damit es schonmal kein NullString ist. Das triviale ist nämlich, daß beim Durchlauf der FormsCollection schon ein Formular instanziert wird und das dann als Tag den NullString hat. 

Morgen an der Uni schau ich mal ob diese Lösung geht, dort ist das mysteriöse Win2000 installiert. Berichte gibt es direkt danach.   

Auf jeden Fall schonmal Danke für Deine Hilfe.


----------



## Orakel (1. Juni 2005)

*Re: Fehler in Anwendung - Der Vorgang 'written' konnte nicht auf dem Speicher ausgefü*

Gern geschehen,

bin mal gespannt

ein gespanntes Orakel


----------

