2009-07-24 10 views
0

tm1api.dllを使用してCognos TM1データストアに接続するC#アプリケーションを作成しようとしています。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(); 
    } 
} 

を追加しましたDLL 'C:\\ Program Files \\ Cognos \\ TM1 \\ bin \\ tm1api.dll'で 'TM1APIInitialise'という名前のエントリポイントを見つけます。

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

101 5D 00008360 TM1APIFinalize 

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

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

+0

申し訳ありませんが、ダンプbinから間違った行がコピーされました: 102 5E 00008350 TM1APIInitialize –

答えて

0

ありがとうございましたJPとArsenMkrt、あなたの答えは私に問題を解決するための両方につながります。

私はそれをTM1APIInitialiseとして定義しましたが、それはTM1APIInitializeであったはずです。

「z」(気になるアメリカのスペル)の代わりに「s」に注意してください:)。

1

は、あなたが間違っているエントリポイント「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(); 
    } 
} 
1

してみてください。また、文字列リテラル@を使用する場合は、バックスラッシュ\をエスケープする必要はありません。

関連する問題