Seltsamer Fehler ?

Hallo Leute,

Unter Windows XP mit SP II und VB 6 tritt folgendes Problem beim ausführen einer EXE Datei auf, die mit VB 6 erstellt wurde, jedoch tritt dieser Fehler nicht auf dem System auf, auf dem diese EXE entwickelt wurde, sondern auf einen anderen PC, jedoch auch ein Windows XP System, jedoch ist dort überhaupt kein VB installiert.

Fehler 713: Klasse ist nicht registriert.
Die folgende Datei muß auf Ihrem computer installiert sein. MSSTDFMT.DLL

Das „merkwürdige“ an dieser Sache sind nun meiner Meinung nach zwei Dinge;

1.), diese DLL wird von der EXE überhaupt nicht benötigt, sie ist auch definitiv nicht in dem Projekt eingebunden.
Unter Projekt…Verweise sind nur die 3 Verweise, die immer da sind, und zwingend nötig sind, nämlich;

  • VBA6.DLL
  • MSVBVM60.DLL
  • VB6.OLB
    nichts weiter. Auch unter „komponenten“ ist NICHTs weiter eingebunden. Es sind auch KEINE irgendwelchen weiteren Steuerelemente eingebunden.

2.) Der Fehler 713 ist in der HIlfe überhaupt nicht zu finden.

Ich glaube es nicht, aber kann es sein, das ich einen Virus auf meinen System habe ??

Hat jemand schon mal sowas erlebt ?

Wer kann helfen ?

Danke.
Jürgen

Hallo,

ich denke dass diese Datei ein Komponente ist, die von irgendwelchen Referenzdateien benötigt wird, wie z.B. die 3 unten aufgelisteten. Deshalb wird es für dein Projekt nicht direkt aufgelistet, da ja eben diese MSSTDFMT.DLL nicht von deinem projekt direkt, sondern von einer Komponente in deinem projekt quasi als Komponente gebraucht wird.
So braucht deine Anwendung ja auch die Windows-DLLs (kernel32, gdi32, user32) ohne dass sie direkt aufgeführt werden.

Dass der Fehler in der Hilfe nicht zu finden ist liegt glaube ich daran, dass es ein Windows-Fehlercode und kein VB-Fehlercode ist. VB-Fehlercodes sind normalerweise auch deutlich länger als 3 Stellen.

Ist also wohl eher kein Virus. Wäre auch eine sehr komische Sorte…

mfg
Raber

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich denke dass diese Datei ein Komponente ist, die von
irgendwelchen Referenzdateien benötigt wird, wie z.B. die 3
unten aufgelisteten. Deshalb wird es für dein Projekt nicht
direkt aufgelistet, da ja eben diese MSSTDFMT.DLL nicht von
deinem projekt direkt, sondern von einer Komponente in deinem
projekt quasi als Komponente gebraucht wird.
So braucht deine Anwendung ja auch die Windows-DLLs (kernel32,
gdi32, user32) ohne dass sie direkt aufgeführt werden.

Dass der Fehler in der Hilfe nicht zu finden ist liegt glaube
ich daran, dass es ein Windows-Fehlercode und kein
VB-Fehlercode ist. VB-Fehlercodes sind normalerweise auch
deutlich länger als 3 Stellen.

Hi,

danke, aber das kann nicht sein, denn ich habe ein anderes (mehrere andere) Projekte, die auf exakt die gleiche Weise erstellt wurden, und letztelich das gleiche machen, und bei denen tritt der Fehler nicht auf.

Sehr seltsam, ich suche seit Tagen den Fehler.

Jürgen

Hallo Jürgen,

verwendest du evtl in deinen Textboxen und Comboboxen spezielle Formatierungen? Wenn ja dann ist dies der Fehler :wink:

Kopiere einfach die DLL Datei in das Systemverzeichnis des Rechners und Registriere Sie mittels regsvr32

Danach sollte dein Prog laufen. Wenn du dann weisst das es definitiv daran liegt, so binde diese DLL mit in dein Setup ein. Sie wird dann automatisch registriert und somit ist das prob behoben :smile:

Desweiteren kann es auch an den Rechten die auf dem Rechner vorliegen liegen! Hat jeder einen Lesezugriff auf die DLL? Wenn nein, dann ändere dies mal :smile: Also Rechte auf „JEDER LESEN“

MfG Alex

MfG Alex

Hi Alex,

du scheinst ja schon einiges von der SAche zu verstehen. Vielleicht komme ich mit deine Hilfe der Lösung näher.

Aber momentan denke ich, das wir noch nicht auf einer Wellenlänge sind.

Es ist so, das ich mehrere Projekte, also letztlich EXE Dateien, also PRogramme, mit VB 6 erstellt habe. Alle greiffen auf die gleichen Recourcen zu. Nur dieses eine Programm läuft auf einem Rechner nicht.

Ich bin ein strikter Gegner von Registrierungen ind er Registry, und programmiere grundsätzlich NUR mit VB Bordmitteln, und mit DLLs, die ich selber programmiert habe. Auch diese DLLs sind keine Activ X DLLs, sondern richtige DLLs, deren Funktionen mit API Aufrufen genutzt werden. So habe ich schon einiges erstellt. Das funktioniert auch alles, auch auf anderen Rechnern. Meine PRogramme sind mittlerweise auf hunderten, vielleicht auf tausenden von PCs. Keiner meckert, also klapptt das.

Ich weiss nur nicht, wo das Problem bei diesem einen Prog ist. Und diese DLL benutze ich ja gar nicht. Ich weiss auch gar nicht, was das für eine DLL ist, will ich auch gar nicht wissen. Meine Programme werden so programmiert, das KEINE Registrierungen, und keine zusätzlichen Dateien erforderlich sind. Setup ? Was ist das denn ? Meine Programme werden einfach kopiert und funktionieren, und fertig.

Nein, ich benutze keine speziellen Formatierungen, und selbt wenn, es kann doch nicht sein, das diese EXE Datei (das PRogramm) ammeckert, das eine DLL benötigt wird, die ich gar nicht eingebunden habe.

Danke aber soweit.

Jürgen

Moin.

Ich habe mal bei Microsoft gesucht und folgendes gefunden:

_The Microsoft Standard Data Formatting Object Library is required for controls that implement a DataFormat property. An Application Error occurs when a control makes an attempt to use the DataFormat property and the Microsoft Standard Data Formatting Object Library is not registered. Controls that implement a DataFormat property include, but are not limited to, the following:

CheckBox, ComboBox, Image, Label, ListBox, PictureBox, TextBox, ImageCombo, MonthView, DTPicker, Calendar, DataCombo, DataList, DBCombo, DBList, MaskEdBox, RichTextBox._

Verwendest Du eines dieser Controls?
Auch ein Vorschlag: Du könntest auf Deinem Rechner die DLL deregistrieren:
regsvr32 /u [Path To Windows\System]\msstdfmt.dll
Wenn dann der Fehler auch bei Dir auftritt, dann hattest Du Pech, dass bei dem beteffenden System diese DLL nicht registriert war, auf den anderen aber schon.

Viel Erfolg
Leo

PS: Quelle http://support.microsoft.com/default.aspx?scid=kb;EN…

Hallo Jürgen,

also die MSSTDFMT.DLL Libary schimpft sich auch " Standard Data Formating Object Library" was widerrum bedeutet, das wenn du zum Bsp. Ein Textfeld mit einer Textformatfunktion verwendest, so wird diese Dll benötigt. Ist sie nicht vorhanden oder auf dem Zielrechner Registriert, so tritt der Fehler auf :-/ Auch kann dieser Fehler auftreten wenn die Rechte für dieses File nicht auf „JEDER LESEN“ gesetzt ist.

Adhock fallen mir nur die 2 Lösung ein, wie du das umgehen kannst

1: Die DLL mit ausliefern / Registrieren & Rechte anpassen
2: Auf die Steuerelemente mit TextFormatierungen verzichten und stattdessen, zum bsp. Im Change Ereignis die Ausgabe mit Format anzupassen.

Bsp.

Private Sub Text1\_Change()
 text1=Format (......)
End Sub

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

erstmal superbesten Dank, für die Mühe die du dir machst.

Vielleicht finde ich den Fehler ja auch noch mit deiner Hilfe, momentan sehe ich das aber nicht…

Die Sache ist die (wie ich schon sagte); ich habe eine SEHR grosse Anwendung, die extrem viele Elemente von jeder Sorte hat. Und genau diese macht diesen Fehler nicht. Aber die kleine Anwendung, wo so gut wie nix drin ist. Genau das verstehe ich nicht.

Stellt sich mir momentan hochgradig seltsam dar.

Nochmal; es gibt garantiert kein Element, welches in der grossen Anwendung nicht in min. der 5 bis 10 fachen Menge vorhanden ist, was nicht auch in der kleinen Anwendung drin ist. Ich verwende exakt die gleichen API Aufrufe. In beiden Anwendungen sind NUR VB Bordmittel drin, keine OCXe und son „Mist“. Wie kann das dann sein, das genau diese kleine Anwendung diese Schwierigkeiten bereitet. Warum will diese Anwendung diese Datei haben, wenn doch div. andere Anwendungen von mir diese Datei nicht brauchen, ich selber diese Datei aber auch nirgends eingbunden habe. sowas gibts doch gar nicht :frowning:

Gruß
Jürgen

Bsp.

Private Sub Text1_Change()
text1=Format (…)
End Sub

MfG Alex

Hi Alex,

ich kanns mir nicht vorstellen, aber ich teste das durch.

Danke.

Jürgen

Hallo Jürgen

Hatte bereits auch so komische Fehler.
Es lag dann aber wirklich an der Registrierung. Ich habe festgestellt das mache dll bei der Installation nicht sauber registriert werden. Auch wenn es standard VB.dll sind. Außerdem kann dir ein anderes Programm alte und somit nicht kompatible dlls unterschieben. Oracle hat das eine Zeit lang gemacht. Sind auf dem einem PC bereits deine andere Programme gelaufen? Oder ist der jungfräulich?
Evtl. Nochmals die Anwendung kompilieren. Wenn möglich auf einem anderen Rechner. und danach nochmals Versuchen.

P.S. Unter Win XP Sp2 haben sich einige Grundeinstellungen beider Rechte Vergabe geändert. -> Könnte somit auch Crashen.

Gruß Sven

Hi Alex,

ich kanns mir nicht vorstellen, aber ich teste das durch.

Danke.

Jürgen