tm1api.dllのエントリポイントを見つけることができません。

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

  •  19-09-2019
  •  | 
  •  

質問

私はtm1api.dllを使用してのCognos TM1のデータストアに接続するC#アプリケーションを記述しようとしています。私は2008 VS C#Expressの基本的なシェルのプロジェクトを作成し、次のコードを追加している。

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に 'TM1APIInitialise' という名前のエントリポイントが見つかりません 'C:\\プログラムファイル\\のCognos TM1 \\ \\ \\ビンtm1api.dll' を。"

私はそのエントリポイントを決定するために「DUMPBIN /輸出がtm1api.dll」を使用しています

    101   5D 00008360 TM1APIFinalize

今、私は途方に暮れています、エントリポイントを持っているようだが、それを認識しません。誰もが正しい方向に私を指すことができますか?

PS。私はC#に完全に新しいですので、私は非常に基本的なミスをすることがあります。)

役に立ちましたか?

解決 3

おかげJPとArsenMkrt、問題のワークアウト私にはあなたの答えの両方鉛ます。

私はそれがTM1APIInitialiseとして定義されていたし、それがTM1APIInitializeされている必要があります。

'S' の代わりに 'Z'(いまいましいアメリカのスペルを)注意:。)

他のヒント

間違ったエントリポイント「TM1APIFinalize」対「TM1APIInitialise」の名前を持って表示されます。あなたは文字列リテラルを使用する場合にも、あなたは\バックスラッシュをエスケープする必要はありません@ます。

これを試します
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