HDSoftware Skrevet 22. november 2010 Del Skrevet 22. november 2010 (endret) Folkens. Jeg sliter litt med å få til følgende. La meg først informere om hav jeg har som virker just fine... Mitt Win32 program er skrevet i Clarion. Dette er altså ren Win32 kompillert binary som har full støtte for Win API Så har jeg et .NET program skrevet i C#. Det jeg er ute etter er å kalle begge veier. Altså vil jeg kalle .NET metoder fra mitt WIn32 program og jeg vil kalle prosedyrer i mitt Win32 program fra .NET Jeg har laget en C++ wrapper som eksporterer en statisk prosedyre. Denne prosedyren kaller jeg fra Win32 programmet der jeg sender over et Interface. Dette interfacet sendes inn i en klasse i C++ programmet. Denne klassen instanserer et .NET objekt og dermed har jeg alt jeg trenger for å kalle .NET metoder fra mitt Win32 program. Mitt problem er andre veien. Min statiske prosedyre ser slik ut: extern "C" __declsped(dllexport) iCommunisafe * __stdcall SetCommunisafeInterOP(iClarion * pClarionCallback) { CommunisafeClass *ThisInterOP = new CommunisafeClass(pClarionCallback); return ThisInterOP; } Så i konstruktøren har jeg følgende: CommunisafeClass : public iCommunisafe { public: CommunisafeClass(iClarion * pClarionCallback) { ThisClarionCallback = pClarionCallback; CommunisafeManager::Login(ThisClarionCallback->GetUserID); } } Som dere ser så kaller jeg et .NET statisk objekt med navn CommunisafeManager sin metode Login og parameteret hentes med interface metoden GetUserID. Dette fungerer helt perfekt. Jeg ønsker i linjen før Login å sende inn et Interface for å få en Callback til C++, altså noe slik: Communisafe::SetCppIF(iCommunisafe) Er dette mulig å få til? I så fall - hvordan? Hensikten er jo selvfølgelig at .NET programmet skal kunne kalle dette interfacet direkte og at C++ koden bak interface metodene skal kalle Win32 programmet, slik jeg jo gjør det ellers i programmet. Endret 22. november 2010 av HDSoftware Lenke til kommentar
HDSoftware Skrevet 23. november 2010 Forfatter Del Skrevet 23. november 2010 lol - 30 stykk har lest dette innlegget uten så mye som en kommentar. Kan dette bety at det ikek er mulig? Er det virkelig slik at MS har laget et verktøy (IJW) som kunn kan brukes EN vei? Det nekter jeg å tro... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå