Ik ben net bezig met een klein C++ programma, maar loop nu tegen een probleem aan. Ik probeer een functie pointer naar de Sleep functie te laten wijzen:
Dan geef ik hiermee wat test-output:
De output:
Dit lijkt dus goed te gaan, en doet precies wat ik wil. De pointer werkt ook goed verder.
Het gaat om een project met een makefile. Nu zet ik in dat bestand de /clr switch erbij, en ik voeg #pragma unmanaged helemaal bovenaan toe om aan te geven dat alle code umanaged is. Verder veranderd er niets, maar nu is mijn output:
Hieruit leid ik af dat de pointer niet word toegekend. Weet er misschien iemand hoe dit komt? Ik ben hier al een tijd mee bezig, maar kom er niet uit. Op Google kan ik verder ook niets vinden over gewijzigd gedrag m.b.t. functie-pointers ofzo... Compiler is Visual Studio 2005, mocht het relevant zijn
Alle hulp is welkom
C++:
1
| VOID (WINAPI *SleepPointer)(DWORD dwMilliseconds) = &Sleep; |
Dan geef ik hiermee wat test-output:
C++:
1
2
| std::cout << "Sleep-location: " << &Sleep << std::endl; std::cout << "Sleep pointer: "<< SleepPointer << std::endl; |
De output:
Sleep-location: 7C802442 Sleep pointer: 7C802442
Dit lijkt dus goed te gaan, en doet precies wat ik wil. De pointer werkt ook goed verder.
Het gaat om een project met een makefile. Nu zet ik in dat bestand de /clr switch erbij, en ik voeg #pragma unmanaged helemaal bovenaan toe om aan te geven dat alle code umanaged is. Verder veranderd er niets, maar nu is mijn output:
Sleep-location: 10003262 Sleep pointer: 00000000
Hieruit leid ik af dat de pointer niet word toegekend. Weet er misschien iemand hoe dit komt? Ik ben hier al een tijd mee bezig, maar kom er niet uit. Op Google kan ik verder ook niets vinden over gewijzigd gedrag m.b.t. functie-pointers ofzo... Compiler is Visual Studio 2005, mocht het relevant zijn
Alle hulp is welkom