Impossibile trovare punto di ingresso in tm1api.dll
-
19-09-2019 - |
Domanda
Sto tentando di scrivere un'applicazione C # il collegamento a un datastore Cognos TM1 utilizzando il tm1api.dll. Ho creato un progetto di guscio di base in VS C # Express 2008, e ha aggiunto il seguente codice
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();
}
}
posso costruire questo progetto senza errori, ma durante l'esecuzione ricevo il seguente errore:
"Impossibile trovare un punto di ingresso denominato 'TM1APIInitialise' nella DLL 'C: \\ Programmi \\ \\ Cognos TM1 \\ bin \\ tm1api.dll'".
Ho usato 'dumpbin / esportazioni tm1api.dll' per determinare il suo punto di ingresso:
101 5D 00008360 TM1APIFinalize
Ora sono in perdita, sembra avere un punto di ingresso, ma non riconoscerlo. Qualcuno mi può punto nella giusta direzione?
PS. Sono completamente nuovo per C #, così che io possa essere commettere errori estremamente di base:)
Soluzione 3
Grazie JP e ArsenMkrt, le vostre risposte entrambi portano a me che lavorano fuori il problema.
L'avevo definito come TM1APIInitialise e avrebbe dovuto essere TM1APIInitialize.
Si noti la 's' al posto del 'z' (ortografia maledetto americano):.)
Altri suggerimenti
Sembra che hai il nome del entrypoint sbagliato "TM1APIInitialise" contro "TM1APIFinalize". Inoltre, non è necessario per sfuggire ai backslash \ se si utilizza la stringa letterale @.
provare questo
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();
}
}