박력돌이

wooristar.egloos.com

포토로그


애드센스와이드


[COM] a error case which is GetFunction method in CAPLFunction with a definition in CAPL Vector(CANoe)


COM의 개체 중 CAPLFunction에서 GetFunction 메쏘드를 사용하여 CAPL에 정의된 함수를 불러 올때,

에러없이 실행이 안되는 경우가 있다.

이는 아래와 같은 경우일 수 있으므로 참고로 작성한다.

    Dim WithEvents App As CANalyzer.Application
    Dim WithEvents Measurement As CANalyzer.Measurement
    Dim systemWrite As CANalyzer.Write
    Dim appCAPL As CANalyzer.CAPL
    Dim NewFunction As CANalyzer.CAPLFunction
    Dim NewFunction1 As CANalyzer.CAPLFunction
    Dim fnSendMessage As CANalyzer.CAPLFunction
    Dim fnSendMessage1 As CANalyzer.CAPLFunction 
    Dim fnWriteToLog As CANalyzer.CAPLFunction

 ...
    Public Sub New()
        App = CreateObject("CANalyzer.Application")
        Measurement = App.Measurement
        appCAPL = App.CAPL
        systemWrite = App.UI.write

...
    End Sub
    
    Private Sub Measurement_OnInit() Handles Measurement.OnInit

        NewFunction = appCAPL.GetFunction("NewFunction")
        NewFunction1 = appCAPL.GetFunction("NewFunction1")
        fnSendMessage = appCAPL.GetFunction("fnSendMessage")
        fnSendMessage1 = appCAPL.GetFunction("fnSendMessage1")
        fnWriteToLog = appCAPL.GetFunction("fnWriteToLog")

    End Sub

위와 같이 설정 했는데 CAPL 파일에는 붉은 색으로 표시된 함수가 없을 경우

컴파일 및 캐널라이져에서 dll 파일을 불러오는데는 문제가 없으나

다른 함수들 call하는 것도 실행이 안된다. (아래 그림 참조)



















일종의 COM Server 버그로 생각됨.

아래는 GetFunction 설명