tigerstrenght
Nieuwe gebruiker
- Lid geworden
- 10 apr 2008
- Berichten
- 2
Hallo allemaal,
Ik ben bezig met een project waarbij ik een USB interface moet maken voor een groot en complex ASIC evaluation board.De interface vindt plaats tussen een PIC18F4550 en een Windows XP PC.
Nu heb ik een C++ applicatie ontwikkeld die gebruik maakt van een ActiveX element (HIDagent) om de USB te besturen. Hierdoor is de code die nodig is voor de USB véél minder en is de boel ook nog eens veel overzichtelijker.
Tot zover dus geen probleem, de USB interface werkt en alle functies die ik heb geschreven werken prima (SPI interface, I2C interface, PWM etc.).
Echter nu is de opdracht om het geheel te integreren in een Labview VI. Hier zal ik verder niet te diep op ingaan, want erg relevant is deze info niet. Waar het op neer komt is dat alles in een DLL geintegreerd moet worden.
Nu heb ik met Borland studio C++ 2006 een DLL gemaakt van de bestaande code. Deze DLL bevat een aantal simpele externe functies, zoals ReadSPI();
Vervolgens een test applicatie gemaakt waarin ik de DLL importeer en test. Alle functies zijn toegankelijk en de functies die géén gebruik maken van de ActiveX werken prima. :thumb:Echter alle functies die wel gebruik maken van de ActiveX geven een "Access Violation" error. :shocked:
Heeft iemand enig idee hoe ik dit het best kan oplossen? Ik ben handig in het maken van C++ code, maar van DLL's en ActiveX heb ik niet veel verstand. De ActiveX is geregistreerd in Windows en werkt vanuit zowel Labview als C++. Het zelfde geldt voor de DLL, uitgezonderd de eerder genoemde functies. De ActiveX is geintegreerd in de C++ code waarvan ik de DLL maak, hij is dus aanwezig binnen de DLL.
Wie o wie kan mij verder op weg helpen?
Bedankt alvast!
Ik ben bezig met een project waarbij ik een USB interface moet maken voor een groot en complex ASIC evaluation board.De interface vindt plaats tussen een PIC18F4550 en een Windows XP PC.
Nu heb ik een C++ applicatie ontwikkeld die gebruik maakt van een ActiveX element (HIDagent) om de USB te besturen. Hierdoor is de code die nodig is voor de USB véél minder en is de boel ook nog eens veel overzichtelijker.
Tot zover dus geen probleem, de USB interface werkt en alle functies die ik heb geschreven werken prima (SPI interface, I2C interface, PWM etc.).
Echter nu is de opdracht om het geheel te integreren in een Labview VI. Hier zal ik verder niet te diep op ingaan, want erg relevant is deze info niet. Waar het op neer komt is dat alles in een DLL geintegreerd moet worden.
Nu heb ik met Borland studio C++ 2006 een DLL gemaakt van de bestaande code. Deze DLL bevat een aantal simpele externe functies, zoals ReadSPI();
Vervolgens een test applicatie gemaakt waarin ik de DLL importeer en test. Alle functies zijn toegankelijk en de functies die géén gebruik maken van de ActiveX werken prima. :thumb:Echter alle functies die wel gebruik maken van de ActiveX geven een "Access Violation" error. :shocked:
Heeft iemand enig idee hoe ik dit het best kan oplossen? Ik ben handig in het maken van C++ code, maar van DLL's en ActiveX heb ik niet veel verstand. De ActiveX is geregistreerd in Windows en werkt vanuit zowel Labview als C++. Het zelfde geldt voor de DLL, uitgezonderd de eerder genoemde functies. De ActiveX is geintegreerd in de C++ code waarvan ik de DLL maak, hij is dus aanwezig binnen de DLL.
Wie o wie kan mij verder op weg helpen?
Bedankt alvast!