unmanaged dll aus c# aufrufen + funkionszeiger übergebe



  • hallo,

    ich versuche zur zeit mit vc# eine kleine handy applikation zu schreiben, die eine microsd karte verwendet um drathlos daten zu empfangen (ant protokol + spectec ant sd karte).

    jedenfalls gibts da ein kleines (für mich as managed code pfeife - eher großes) problem.

    der hersteller hat eine dll mit den funktionen zum betrieb der sd karte beigelegt.
    soweit so gut - mit dllimport ists ja schnell importiert. zwei funktionen benötigen aber als parameter einen funktionszeiger und einen zeiger auf einen datenbuffer.

    prototyp:
    void ANT_AssignChannelEventFunction(UCHAR ucChannel, CHANNEL_EVENT_FUNC pfChannelEvent, UCHAR *pucRxBuffer);

    wobei die eventfuntkion wie folgt aussehen soll (laut exapleusage)
    // Example Usage BOOL ANT_ChannelEventFunction(UCHAR ucChannel, UCHAR ucEvent); UCHAR aucChannelEventBuffer[MESG_DATA_SIZE];
    . .
    ANT_AssignChannelEventFunction(channel_0, &ANT_ChannelEventFunction, aucChannelEventBuffer);

    was ich nun machen möchte ist, als channeleventfunktion einfach eine methode angeben, die mit den inhalt des buffers (pucRxBuffer) in eine textbox schreibt.

    nun meine frage:

    ist es mögich sowas zu machen (über eine delegate) bzw. ist es überhaupt möglich einen "zeiger" irgendwie an die funktion zu übergeben?

    leider gibt das internet nicht viel her zu dem thema - es haben viele leute ein ähnliches problem (und die msdn hile ist ein 😡 )

    vielleicht hat ja die/der eine oder andere schon mal was ähnliches gemacht und kann mir einen tipp geben?

    danke
    martin



  • Welche Sprache? C#, C++, C++/CLI?

    Suche doch mal einfach nach: C# Callback unmanged und lese dir ein paar Codeprojet Artikel durch die auftauchenE,

    in Callback ist auch nichts anderes als ein Pointer oder Delegate.



  • hallo,

    danke - wenn man weiß, wochan man suchen muss gehts eh 🙂

    schaut gut aus, und funktioniert jetzt einmal ohne fehler.
    (nach diesem vorbild: http://bytes.com/topic/c-sharp/answers/533832-callback-function-unmanaged-dll-using-dllimport-delegate)

    lg
    martin



  • hallo:

    ich habe mich da wohl in der kategorie geirrt. dieses post betrifft ja c#

    sorry.


Log in to reply