我尝试写一C#应用程序连接到一个Cognos TM1数据库的使用tm1api.dll.我已经创建了一个基本壳项目在VS C#速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/出口tm1api.dll'以确定其进入点:

    101   5D 00008360 TM1APIFinalize

现在我在一个损失,这似乎有一个入口点,但是不承认它。任何人都可以点我在正确的方向?

PS。我完全新C#所以我可以做出非常基本的错误:)

有帮助吗?

解决方案 3

谢谢特和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();
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top