簡體   English   中英

在tm1api.dll中找不到入口點

[英]Unable to find entry point in tm1api.dll

我正在嘗試編寫使用tm1api.dll連接到Cognos TM1數據存儲區的C#應用​​程序。 我在VS C#Express 2008中創建了一個基本的shell項目,並添加了以下代碼

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();
    }
}

我可以毫無錯誤地構建此項目,但是在運行時出現以下錯誤:

“無法在DLL'C:\\\\ Program Files \\\\ Cognos \\\\ TM1 \\\\ bin \\\\ tm1api.dll'中找到名為'TM1APIInitialise'的入口點。”

我已經使用“ dumpbin / exports tm1api.dll”確定其入口點:

    101   5D 00008360 TM1APIFinalize

現在我很茫然,它似乎有一個切入點,但確實可以識別它。 誰能指出我正確的方向?

PS。 我是C#的新手,所以我可能犯了非常基本的錯誤:)

嘗試這個

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();
    }
}

看來您的入口點名稱錯誤,是“ TM1APIInitialise”和“ TM1APIFinalize”。 另外,如果使用字符串文字@,則不需要轉義反斜杠\\。

感謝JP和ArsenMkrt,您的回答都導致我解決了該問題。

我已將其定義為TM1APIInitialise,而應該將其定義為TM1APIInitialize。

注意“ s”而不是“ z”(該死的美國拼寫):)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM