Ik heb een 3rd party library van nikon waarmee ik op het werk een camera aan wil sturen voor geautomatiseerde meetprocessen. Ze hebben er een voorbeeld programma bijgeleverd waarin de camera via de command line met de cijfers 1 t/m 9 bestuurd kan worden.
Nu wil ik een dll bouwen die het voor mij mogelijk maakt om de functies van de dll op een simpele manier te kunnen bereiken, zodat ik ze in labview aan kan roepen.
Mijn probleem is dat het voorbeeld programma 3 globale variabelen gebruikt die compleet door de gehele software verweven zitten. Dit werkt prima bij de exe, maar nu vraag ik mij af hoe dit bij een dll werkt.
Als ik de software omgooi naar een dll via:
En bijvoorbeeld 4 beschikbare functies maak.
1: Open_Cam
2: Take_Picture
3: Save_Picture
4: Close_Cam
Stel functie 1 vult de globale variabele met een handle naar de camera.
Als ik dan later functie 2 aanroep, zit die variabele dan nog vol, of wordt die gewist zodra functie 1 klaar is?
Ik weet dat ik die globale variabele steeds als pointer mee kan geven, maar dan moet ik 50+ functies opnieuw programmeren.
Weet iemand hoe dat zit met globale variabelen in dll's?
EDIT: spelling
Nu wil ik een dll bouwen die het voor mij mogelijk maakt om de functies van de dll op een simpele manier te kunnen bereiken, zodat ik ze in labview aan kan roepen.
Mijn probleem is dat het voorbeeld programma 3 globale variabelen gebruikt die compleet door de gehele software verweven zitten. Dit werkt prima bij de exe, maar nu vraag ik mij af hoe dit bij een dll werkt.
Als ik de software omgooi naar een dll via:
code:
1
2
3
4
5
| #ifdef D70_EXPORTS #define D70_API __declspec(dllexport) #else #define D70_API __declspec(dllimport) #endif |
En bijvoorbeeld 4 beschikbare functies maak.
1: Open_Cam
2: Take_Picture
3: Save_Picture
4: Close_Cam
Stel functie 1 vult de globale variabele met een handle naar de camera.
Als ik dan later functie 2 aanroep, zit die variabele dan nog vol, of wordt die gewist zodra functie 1 klaar is?
Ik weet dat ik die globale variabele steeds als pointer mee kan geven, maar dan moet ik 50+ functies opnieuw programmeren.
Weet iemand hoe dat zit met globale variabelen in dll's?
EDIT: spelling