غير قادر على العثور على نقطة الدخول في tm1api.dll

StackOverflow https://stackoverflow.com/questions/1175959

  •  19-09-2019
  •  | 
  •  

سؤال

أحاول كتابة تطبيق C # يتصل ب Cognos TM1 DataStore باستخدام tm1api.dll. لقد قمت بإنشاء مشروع Shell أساسي في 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 tm1 bin tm1api.dll'."

لقد استخدمت "Dumpbin / Exports TM1api.dll" لتحديد نقطة الدخول الخاصة بها:

    101   5D 00008360 TM1APIFinalize

الآن أنا في حيرة، يبدو أن لديها نقطة دخول ولكن تعترف بذلك. يمكن لأي شخص لي نقطة في الاتجاه الصحيح؟

ملاحظة. أنا جديد تماما على C #، لذلك قد أكون أخطاء أساسية للغاية :)

هل كانت مفيدة؟

المحلول 3

شكرا JP و Arsenmkrt، إجاباتك على حد سواء تؤدي إلي ممارسة هذه القضية.

لقد حددتها كما TM1apiinitialise ويجب أن يكون tm1apiinitialize.

لاحظ "S" بدلا من "Z" (الإملاء الأمريكي لعنة) :).

نصائح أخرى

يبدو أن لديك اسم الخاطئ "TM1apiinitialise" خطأ "مقابل" TM1apifinalize ". أيضا، لا تحتاج إلى الهروب من Backslashes إذا كنت تستخدم السلسلة الحرفية @.

جرب هذا

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();
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top