tm1api.dllのエントリポイントを見つけることができません。
-
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();
}
}
所属していません StackOverflow