Announcement

Collapse
No announcement yet.

DLL-Fehlermeldung beim Ausführen auf anderen PCs

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DLL-Fehlermeldung beim Ausführen auf anderen PCs

    Hallo!

    Ich hab ein tool programmiert, dass eine Funktion in einer .Net Bibliothek ausführt. Also die Bibliothek ist in .Net geschrieben und auch in meinem System registriert.

    Die DLL bzw. die Bibliothek ist als Verweis in meinem VB-Projekt angegeben.

    Wenn ich das Tool auf meinem Rechner ausführe bekomme ich keine Fehlermeldung. Wenn ich das Tool dann auf einem anderen Rechner ausführe kommt folgende Fehlermeldung:
    Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.

    Auf dem anderen Rechner ist die selbe Bibliothek registriert.


    Das kuriose kommt jetzt: Wenn ich das Projekt auf dem anderen Rechner kompiliere, funktioniert es dort. Aber dafür funktioniert es nicht mehr auf meinem Rechner und es kommt wieder die Fehlermeldung "Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

    Wo liegt der Fehler? Wie kann ich das ändern? Was muss ich tun, damit die Anwendung auf beiden Rechnern funktioniert?

    Vielen Dank im Voraus

  • #2
    Hallo,

    ...meinem VB-Projekt angegeben.
    Um welche VB-Version handelt es sich? Ist das bereits Visual Basic 2005/2008 oder noch VB 6 (Win32), das die .NET-Klassenbibliothek über COM Interop einbindet?

    Also die Bibliothek ist in .Net geschrieben ...
    In welcher Sprache wurde die Klassenbibliothek geschrieben und für welche .NET-Frameworkversion wurde diese kompiliert? Wenn dort C# zusammen mit unsafe code verwendet wird, sind schon Situationen denkbar, bei denen ein Zeiger nicht auf die korrekte Stelle verweist.

    Comment


    • #3
      Originally posted by Andreas Kosch View Post
      Hallo,


      Um welche VB-Version handelt es sich? Ist das bereits Visual Basic 2005/2008 oder noch VB 6 (Win32), das die .NET-Klassenbibliothek über COM Interop einbindet?



      In welcher Sprache wurde die Klassenbibliothek geschrieben und für welche .NET-Frameworkversion wurde diese kompiliert? Wenn dort C# zusammen mit unsafe code verwendet wird, sind schon Situationen denkbar, bei denen ein Zeiger nicht auf die korrekte Stelle verweist.
      Danke für die Antwort.

      Es handelt sich um ein Projekt in VS2005 und VS2008 in der Programmiersprache VB.NET.

      Soweit ich weiß, ist die Klassenbibliothek auch in .NET geschrieben. Sie wurde für die .NET-Frameworkversion 2 kompiliert. Ich weiß nicht, welche Programmiersprache die Entwickler benutzt haben. Ich vermute aber es ist C#.

      Comment


      • #4
        Hallo,

        Es handelt sich um ein Projekt in VS2005 und VS2008 in der Programmiersprache VB.NET.
        das erklärt alles. Wenn Visual Studio 2008 installiert wird, wird zusammen mit dem .NET Framework 3.5 auch das Service Pack 1 des .NET Frameworks 2.0 eingespielt. Auch dann, wenn in Visual Studio 2008 das Ziel .NET 2.0 ausgewählt wird, gibt es einen Unterschied zu Visual Studio 2005:

        Visual Studio 2005: .NET 2.0 RTM
        Visual Studio 2008: .NET 2.0 SP1

        Mit dem Service Pack 1 von .NET 2.0 wird das Thema "the green bits and the red bits" relevant. Die Hintergründe dazu sind im Blog-Eintrag http://www.danielmoth.com/Blog/2007/...mework-35.html zu finden.

        Was muss ich tun, damit die Anwendung auf beiden Rechnern funktioniert?
        Wenn in der Anwendung auch nur eine einzige Assembly eingebunden wird, die mit Visual Studio 2008 für das Ziel .NET 2.0 kompiliert wurde, muss auf jedem Rechner das Service Pack 1 von .NET 2.0 installiert sein.

        Comment

        Working...
        X