Невозможно найти точку входа в tm1api.dll.
-
19-09-2019 - |
Вопрос
Я пытаюсь написать приложение C#, подключающееся к хранилищу данных Cognos TM1, используя tm1api.dll.Я создал базовый проект оболочки в VS C# Express 2008 и добавил следующий код
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();
}
}
Я могу собрать этот проект без ошибок, но при запуске получаю следующую ошибку:
«Невозможно найти точку входа с именем «TM1APIInitialise» в DLL «C:\\Program Files\\Cognos\ M1\\bin\ m1api.dll».»
Я использовал «dumpbin/exports tm1api.dll», чтобы определить точку входа:
101 5D 00008360 TM1APIFinalize
Теперь я в растерянности, вроде бы есть точка входа, но она ее распознает.Может кто-то указать мне верное направление?
ПС.Я совершенно новичок в C#, поэтому могу совершать очень элементарные ошибки :)
Решение 3
Спасибо JP и ArsenMkrt, ваши ответы помогли мне решить проблему.
Я определил его как TM1APIInitialise, а должно было быть TM1APIInitialize.
Обратите внимание на «s» вместо «z» (чертово американское написание) :).
Другие советы
Похоже, у вас неправильное имя точки входа «TM1APIInitialise» и «TM1APIFinalize».Кроме того, вам не нужно экранировать обратную косую черту \, если вы используете строковый литерал @.
попробуй это
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();
}
}