Ok dit is mijn probleem:
Ik gebruik een 3rd party dll (waaraan ik dus niks kan veranderen) die een zekere
functie bevat waaraan ik een pointer naar een andere functie met de __cdecl calling conventie moet geven.
Ik wil echter meerdere instanties van deze dll in m'n programma gebruiken
(het zijn eigenlijk niet dezelfde dll's, maar wel met dezelfde api, vandaar),
en daarom ben ik nu een object aan het schrijven dat een abstractie vormt
van 1 instantie van zo'n dll.
Ik wil nu aan die functie uit de dll een pointer naar een member functie van m'n object geven, zodat elke dll de functie oproept uit z'n eigen bijhorend object.
Dit kan echter niet aangezien een memberfunctie van een object de calling conventie __thiscall heeft.
Nu vroeg ik mij af hoe ik dit het beste kan oplossen/omzeilen/... ?
Ik heb eraan gedacht om al die dll's dezelfde gewone (__cdecl) functie te laten oproepen en dan die functie de memberfunctie van het juiste object te laten oproepen, maar dit is echter niet mogelijk aangezien ik met geen enkel middel kan
achterhalen uit welke dll die functie oproep kwam, en ik dus niet kan achterhalen welk object ik zou moeten oproepen...
Ik veronderstel dat ik toch in ieder geval een pointer naar een gewone (__cdecl) functie zal moeten geven aan die dll, maar hoe kan ik dan te weten komen bij welk object de dll hoort vanwaar de functieoproep kwam?
Tnx for the help!
Ik gebruik een 3rd party dll (waaraan ik dus niks kan veranderen) die een zekere
functie bevat waaraan ik een pointer naar een andere functie met de __cdecl calling conventie moet geven.
Ik wil echter meerdere instanties van deze dll in m'n programma gebruiken
(het zijn eigenlijk niet dezelfde dll's, maar wel met dezelfde api, vandaar),
en daarom ben ik nu een object aan het schrijven dat een abstractie vormt
van 1 instantie van zo'n dll.
Ik wil nu aan die functie uit de dll een pointer naar een member functie van m'n object geven, zodat elke dll de functie oproept uit z'n eigen bijhorend object.
Dit kan echter niet aangezien een memberfunctie van een object de calling conventie __thiscall heeft.
Nu vroeg ik mij af hoe ik dit het beste kan oplossen/omzeilen/... ?
Ik heb eraan gedacht om al die dll's dezelfde gewone (__cdecl) functie te laten oproepen en dan die functie de memberfunctie van het juiste object te laten oproepen, maar dit is echter niet mogelijk aangezien ik met geen enkel middel kan
achterhalen uit welke dll die functie oproep kwam, en ik dus niet kan achterhalen welk object ik zou moeten oproepen...
Ik veronderstel dat ik toch in ieder geval een pointer naar een gewone (__cdecl) functie zal moeten geven aan die dll, maar hoe kan ik dan te weten komen bij welk object de dll hoort vanwaar de functieoproep kwam?
Tnx for the help!