Announcement

Collapse
No announcement yet.

LoadLibary 193

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

  • LoadLibary 193

    Hallo.

    Ich will ein Programm bauen, welches mir die Resourcen von vielen DLL durchscannt. Testhalber lasse ich es auf die Windows 8.1 DVD los.

    Bei vielen (aber nicht allen!) DLLs funktioniert LoadLibrary nicht. LastError: 193 (ERROR_BAD_EXE_FORMAT: "%1 is not a valid Win32 application."), bei anderen geht es aber.
    System:
    Windows 10, 64 Bit.
    Umgebung: .Net 4.6, C#



    [highlight=c#]
    [..]
    [DllImport("kernel32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
    public static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] string fileName);
    [..]
    IntPtr lib;
    [..]
    lib = LoadLibrary(filename);
    if (lib == IntPtr.Zero)
    {
    Console.WriteLine("Error loading " + accesspath + ": " + Marshal.GetLastWin32Error());
    }
    [/highlight]

    Wo ist mein Denkfehler? So viele Möglichkeiten für Fehler gibt es da doch nicht...

    Danke
    Ralph Erdt

  • #2
    https://www.google.de/search?q=LoadL...oadLibrary+193
    Christian

    Comment


    • #3
      Das ist ja eine interessante Idee!</Sarkasmus>

      Toll. Könnte an 32/64 bit liegen. Ich will aber keinen Code ausführen, nur die Ressourcen auslesen. Gibt es da etwas anderes für?

      Comment


      • #4
        Man kann auch DLLs explizit als Ressourcen-DLL mit der Ex-Funktion laden (https://msdn.microsoft.com/en-us/lib...v=vs.85).aspx) laden .
        Ob das das 32/64-Bit Problem löst ist offen wenn das nicht von MS vorgesehen wurde.

        Comment


        • #5
          Danke. Es scheint jetzt zu funktionieren (Es kommen jetzt Enumeration Fehler, aber das ist eine andere Baustelle).

          Ich wies nicht wieso, aber ich war der Meinung gelesen zu haben, das *Ex für die Sprache zuständig ist, daher habe ich mir das gar nicht angesehen.. :-/

          Comment

          Working...
          X