Frage

Ich versuche, eine C # .NET-Anwendung zu einem Cognos TM1-Datenspeicher mit dem tm1api.dll Verbindung zu schreiben. Ich habe ein grundlegendes Shell-Projekt in VS C # Express 2008 erstellt und habe den folgenden Code

public partial class MainPortal : Window
{

    [System.Runtime.InteropServices.DllImport(@"C:\\Program Files\\Cognos\\TM1\\bin\\tm1api.dll", EntryPoint="TM1APIInitialise")]
    public static extern void TM1APIInitialise();

    public MainPortal()
    {
        InitializeComponent();

        TM1APIInitialise();
    }
}

kann ich dieses Projekt ohne Fehler bauen, aber beim Laufen bekomme ich folgende Fehlermeldung:

"Kann nicht einen Einstiegspunkt namens 'TM1APIInitialise' in DLL finden 'C: \\ Programme \\ Cognos TM1 \\ \\ ist \\ tm1api.dll'."

ich verwendet habe 'dumpbin / export tm1api.dll' seinen Eintrittspunkt zu bestimmen:

    101   5D 00008360 TM1APIFinalize

Jetzt habe ich bei einem Verlust bin, scheint es einen Einstiegspunkt zu haben, aber es nicht erkennt. Kann jemand mich in die richtige Richtung?

PS. Ich bin ganz neu in C #, so dass ich kann sehr grundlegende Fehler werden machen:)

War es hilfreich?

Lösung 3

Danke JP und ArsenMkrt, Ihre Antworten führen beide zu mir, das Problem der Arbeit aus.

Ich hatte es als TM1APIInitialise definiert und es sollte TM1APIInitialize gewesen sein.

Beachten Sie die 's' anstelle der 'z' (verdammt amerikanische Schreibweise):.)

Andere Tipps

Es scheint, dass Sie den Namen des Einstiegspunktes falsch „TM1APIInitialise“ versus „TM1APIFinalize“ haben. Auch brauchen Sie nicht die Schrägstriche zu entkommen \, wenn Sie die Stringliteral verwenden @.

try this

public partial class MainPortal : Window
{

    [System.Runtime.InteropServices.DllImport(@"C:\Program Files\Cognos\TM1\bin\tm1api.dll", EntryPoint="TM1APIFinalize")]
    public static extern void TM1APIFinalize();

    public MainPortal()
    {
        InitializeComponent();

        TM1APIInitialise();
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top