Gå til innhold

Gi ut exe-filer fra MSVC++ 2005


Anbefalte innlegg

Har laget et lite program i C++ med SDL og FMOD (libraries). Mens jeg drev og skreiv det så brukte jeg Microsoft Visual C++ 2005 Express (gratisversjon). Så da jeg ble ferdig med det tenkte jeg at jeg bare kunne sende exe-filen og dll-ene (SDL og FMOD) til han som skal bruke det. Men på hans PC får han bare opp "the application is configured incorrectly", eller noe sånt, vanskelig å gi presis feilmelding fordi det ikke skjer på min egen maskin.

 

Har prøvd med "release"-settings i MSVC++ og prøvd å legge ved msvc*.dll-filer, men det er ingen forskjell. Har søkt litt rundt på dette og funnet ut at det er noe greier med ny "application deployment"-metode i Visual C++ 2005, men jeg klarer ikke finne utav hva som skal til for å få det til å kjøre på andre PC-er. Har også prøvd med Dev-C++, men der klarer jeg ikke kompilere koden. Har ikke brukt noen .NET-funksjoner, heller ingen windows-funksjoner.

 

Noen som har framgangsmåte for å få programmet til å kjøre på alle windows-maskiner? Kanskje jeg bare burde skaffe meg Visual C++ 6? Hvordan skal jeg få det til uten å måtte sende en haug med visual c++ dll-er og .NET framework og sånt?

Lenke til kommentar
Videoannonse
Annonse

vel, «noe er galt med programmet» er jo en genial feilmelding ..

 

tror du bør få halt ut en bedre melding av fyren (kjøre den fra konsollet?), eller forsøke å reprodusere feilen selv

 

en grei sak der er å bruke VMWare og legge inn en "fresh" install av Windows for å teste stuff .. men VMWare koster $ da

Lenke til kommentar

Emulator var bra tips, men jeg må vite hvor jeg skal begynne å gjøre forandringer i programmet mitt.

 

Jeg har prøvd det selv på en annen maskin, og det står absolutt ingenting om hva som er feil. Har søkt på den eksakte feilmeldinga og jeg tror jeg har funnet ut at det er noe med Visual C++ 2005 som har en ny måte å distribuere exe-filer på (side-by-side og isolated applications?).

 

Men mer generelt: hva må til for å få en windows- eller console-applikasjon til å kjøre mest mulig selvstendig på en standard windowsinstallasjon? Hvordan konfigurere f.eks. Visual C++ 2005 eller en gratis IDE eller kompilator, tenker jeg på.

Lenke til kommentar

Du linker sikkert mot dll-versjonen av C runtime og standard C++ bibliotekene. Det enkleste for deg er å linke statisk ved å sette runtime library til multi-threaded eller multi-threaded debug avhengig av debug/release versjon. Dette gjør du under "Project settings" -> "Configuration properties" -> "C/C++" -> "Code generation" -> "Runtime library".

 

Problemet som oppstår når du du linker mot dll-versjonen er ganske enkelt at du mangler noen av filene som VS 8.0 linker seg mot. For et standard C++ prosjekt trenger du følgende filer:

 

msvcp80.dll

msvcr80.dll

msvcm80.dll

 

Noe som er nytt for VS 8.0 er at du også trenger manifest-fila. Du finner det du trenger under: X:\...\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT . Hvis du jobber i et 64-bits miljø bytter du da ut x86 med din arkitektur...

 

Men for å gjøre det enkelt for deg selv - link statisk! :)

Lenke til kommentar

Mange takk, fikk det til med kjetil7 sitt tips. Nå virker det bare jeg legger ved de dll-ene jeg visste jeg hadde brukt. Men SDL_image krever jpeg.dll, libpng13.lib og zlib1.dll. Disse filene finnes vel på de fleste maskiner allerede. Virker spesielt merkelig å legge ved jpeg.dll. Noen måte å få den til å bruke den som allerede ligger på maskinen? Eller er det like vanskelig som disse msvc-filene? :)

 

edit: ser forresten at jeg ikke har jpeg.dll i windowskatalogen. Må alle som bruker jpegs legge ved den dll-en i programmene sine?

Endret av birds
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...