Nicht imstande, Einstiegspunkt in tm1api.dll zu finden
-
19-09-2019 - |
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:)
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();
}
}