Toon posts:

VC++ DLL release/installatie probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

ik bouw een plugin onder MS Visual C++ voor Winamp. Deze plugin is een aansturing van een voetpedaal en importeert dus de driver van dit voetpedaal.

De software lijkt goed te werken op de computer (met winXP) waarop ik de code heb geschreven, maar zodra ik het installeer naar een andere computer krijg ik een foutmelding (Enumeration Error) van de voetpedaal driver.

Ik installeer het volgende op de nieuwe computer met Win2000 of WinXP (zelfde probleem):

- de driver van het voetpedaal
- winamp
- mijn eigen winamp plugin DLL

Mijn vraag is het volgende. Moet ik de files uit de release directory ook installeren (op mijn eigen systeem hoeft dit niet) Zou iemand me misschien kunnen uitleggen wat ze inhouden? Het gaat om de volgende files:
gen_MTFootControl.dll
gen_MTFootControl.exp
gen_MTFootControl.lib
gen_MTFootControl.pch
JSDemo.obj
MTFootControl.obj (zelfde als mijn .c file in vc++)
vc60.idb

Als mijn bovengenoemde oplossing niet juist is, moet ik dan iets anders installeren, wat het probleem oplost. (Als java programmeur denk ik aan iets zoals de Java Virtual Machine).

Een derde mogelijke fout zou misschien zijn dat ik sommige files niet goed in mijn project importeer. Waar moet ik hier aan denken.

Bedankt voor jullie hulp,

Mark

Verwijderd

Waarschijnlijk de lib file er ook bij zetten als die niet static is mee gelinkt.

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 15:14

johnwoo

3S-GTE

Nee, die andere files hoef je niet mee te leveren...

gen_MTFootControl.dll is je DLL
gen_MTFootControl.exp is de export file voor je DLL (niet interessant in dit geval)
gen_MTFootControl.lib is de import library voor je DLL; deze kun je gebruiken in eventuele andere projecten die jouw DLL gebruiken.
gen_MTFootControl.pch is de precompiled header (gebruikt door VC++)
JSDemo.obj
MTFootControl.obj (zelfde als mijn .c file in vc++)
vc60.idb
Alle .obj (object) files zijn tussenstappen tijdens de compilatie die door VC++ gebruikt worden. (.obj files zijn al wel gecompileerd, maar nog niet gelinkt)

De fout zal hoogstwaarschijnlijk toch ergens in de communicatie met de driver of de driver zelf zitten denk ik...

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


Verwijderd

Andere DirectX geinstaleerd op dat andere systeem toevallig?

  • BugBoy
  • Registratie: November 2002
  • Laatst online: 28-08 12:33
Je kunt ook de dependency checker gebruiken om te kijken welke libraries allemaal nodig zijn. Een dergelijk programma levert Microsoft zelf mee met VC++ (depends.exe), maar je kunt een betere versie vinden op www.dependencywalker.com. Die kan ook de runtime gegevens weergeven.

Veel gemaakte fouten zijn:
- VC++ redistributables zijn niet aanwezig (bijv. MFC libraries).
- Verkeerde versie van een library is aanwezig (kent dus nieuwe functies niet).
- Debug versies uitleveren (mag licentietechnisch ook niet!!!)

Check de boel eens met de dependency walker en je bent er waarschijnlijk vrij snel achter (als het tenminste een probleem is dat te maken heeft met de DLL). Om te kijken of de DLL uberhaupt wel geladen wordt kun je natuurlijk ook in je DLL entry-point een messagebox plaatsen om te kijken of deze gestart wordt. Je kunt trouwens ook vrij eenvoudig remote debuggen via een LAN (staat redelijk beschreven in de VC help).

The miracle isn't that I finished. The miracle is that I had the courage to start.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 29-08 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 11 november 2002 @ 16:21:
Waarschijnlijk de lib file er ook bij zetten als die niet static is mee gelinkt.


een lib file kan alleen maar statisch gelinkt worden, en zal dus ook nooit nodig zijn tijdens het runnen van een programma

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Bedankt, dit ga ik uitproberen. De DLL wordt overigens wel netjes geladen in de winamp plugin list. Deze foutmelding komt van de driver dus ook deze DLL wordt goed geladen. Ik gebruik overigens geen MFC.

Verwijderd

BugBoy schreef op 11 november 2002 @ 16:46:
- Debug versies uitleveren (mag licentietechnisch ook niet!!!)
Mag dat niet?bizar, Weet je toevallig waar ik meer info kan vinden over wat ik wel/niet mag deployen?
Pagina: 1