문제

TM1api.dll을 사용하여 Cognos TM1 데이터 스토어에 연결하는 C# 응용 프로그램을 작성하려고합니다. 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'라는 진입 점을 찾을 수 없습니다."

나는 '덤프 빈 /내보내기 tm1api.dll'을 사용하여 입구 지점을 결정했습니다.

    101   5D 00008360 TM1APIFinalize

이제 나는 손실에 있고 진입 점이있는 것처럼 보이지만 그것을 인식합니다. 누구든지 나를 올바른 방향으로 가리킬 수 있습니까?

추신. 나는 C#을 완전히 처음 접 했으므로 매우 기본적인 실수를 저지르고있을 수 있습니다 :)

도움이 되었습니까?

해결책 3

감사합니다 JP와 Arsenmkrt, 귀하의 답변은 모두 문제를 해결하게합니다.

나는 그것을 tm1apiinitialise로 정의했으며 tm1apiinitialize 였을 것입니다.

'z'(젠장 미국 철자) 대신 's'를 주목하십시오 :).

다른 팁

"tm1apiinitialise"와 "tm1apifinalize"의 이름이있는 것으로 보입니다. 또한 문자열 literal @를 사용하는 경우 백 슬래시를 피할 필요가 없습니다.

이 시도

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