eingene DLL aufrufen

  • Hallo in die Runde,

    ich versuche aus einem Script eine eigene DLL (toolsdll.dll) aufzurufen. Doch findet er sie nicht.

    In der Anleitung in der KnowledgeBase muss ich die dll in einer Verzeichnis kopieren, was von Windows nach neuen dlls durchsucht wird.

    Ich habe dann versucht die dll mit Hilfe von regsvr32.exe zu registrieren, doch hier kommt der Fehler, dass die Anwendung nicht gestartet werden kann und ich diese neu installieren soll.

    Was kann ich tun um die dll richtig zu verwenden?

    Grüße,
    Johannes Hamecher

  • Kopiere sie mal nach windows/system32.

    Wenn Du sie nicht registrieren kannst, dann hat sie keinen einsprungspunkt. Ansonsten müsste man etwas mehr über die dll wissen.

  • Das hatte ich getan, doch funktioniert es ebenfalls nicht.

    Die dll habe ich mit VisualStudio2005 erstellt, hier werden im Projekt automatisch 3 Dateien erstellt:

    Headerdateien:
    - stdafx.h
    Quelldateien:
    - stdafx.cpp
    - toolsdll.cpp

    Nun habe ich nach dem Vorbild des Knowledgebase Eintrages eine def Datei mit folgendem Inhalt

    LIBRARY "toolsdll"
    DESCRIPTION 'DvCC Sample DLL'
    EXPORTS today

    ergänzt.

    Die toolsdll.cpp sieht so aus:

    // toolsdll.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.
    //

    #include "stdafx.h"


    #ifdef _MANAGED
    #pragma managed(push, off)
    #endif

    BOOL APIENTRY DllMain( HMODULE hModule,
    DWORD ul_reason_for_call,
    LPVOID lpReserved
    )
    {
    return TRUE;
    }

    void WINAPI today (char FAR* OutputValue, char FAR* InputValue)
    {
    OutputValue = "MO";
    }

    #ifdef _MANAGED
    #pragma managed(pop)
    #endif

    Da ich die Datei nur zum scripten brauche habe ich keine andere Anwendung, mit der die Datei getestet werden kann. (Im Notfall muss ich mir noch eine schreiben)

    Jedenfalls hat er mir fehlerfrei eine Datei toolsdll.dll erstellt, doch kann ich die funktion today() nicht benutzen.

    Da sie nicht registriert ist, nehme ich an.

    Vielen Dank für die Hilfe,
    Johannes Hamecher

  • Versuche sie einfach mal aus einer anderen anwendung im vs heraus zu instanziieren und zu testen. dann siehst ja wo es hapert.
    aber da die dll ja mit vs 2005 erstellt wurde, müsste sie registrierbar sein.

  • Da sie von VS kommt sollte es gehen aber wenn ich regsvr32.exe toolsdll.dll /i aufrufen kommt dieser Fehler:

    LoadLibrary("c:\windows\system32\toolsdll.dll") fehlgeschlagen - Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht ordnungsgemäß ist. Zur Problembehebung sollten Sie die Anwendung neu installieren.

    Dann habe ich versucht über das Script auf dll-Dateinen im system32 - Ordner zuzugreifen, dabei immer die function today.

    Dabei kam bei c:\windows\system32\tobit32.dll ein Fehler, sollte ja auch, da die function nicht implementiert ist.

    Versuche ich jetzt die toolsdll.dll aufzurufen kommt garnichts, weder ein Fehler noch ein OK.

    Was könnte ich da genau machen?

    Grüße,
    Johannes Hamecher

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!