Avatar billede moejensen Nybegynder
06. februar 2003 - 16:41 Der er 28 kommentarer og
2 løsninger

HaSTER: problem med compail af autorun script

Jeg har lavet følgende der skal auto-starte en .htm fil på en cd-rom:

#include <ShellAPI.hpp>
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    ShellExecute(0,\"open\",\".\\\\sider\\\\start.htm\",0,0,SW_NORMAL);
    return 0;
}

Men når jeg prøver at compaile det, får jeg følgende fejl:

Compiling...
autorun.cpp
autorun.cpp(1) : fatal error C1083: Cannot open include file: 'ShellAPI.hpp': No such file or directory
Error executing cl.exe.

autorun.obj - 1 error(s), 0 warning(s)
Avatar billede jpk Nybegynder
06. februar 2003 - 16:47 #1
Jeg går stærkt ud fra du bruger Borlands compiler..?
Avatar billede jpk Nybegynder
06. februar 2003 - 16:48 #2
Det er jo tydeligvis fordi compileren ikke kan finde filen, altså skal du have sat stien op til den i dit udviklingsmiljø...
Avatar billede moejensen Nybegynder
06. februar 2003 - 16:49 #3
jeg bruger visual c++
Avatar billede moejensen Nybegynder
06. februar 2003 - 16:49 #4
hvad er det for en sti? og hvor skal den sættes op?
Avatar billede jpk Nybegynder
06. februar 2003 - 16:49 #5
Så hedder filen jo shellapi.h
Avatar billede jpk Nybegynder
06. februar 2003 - 16:50 #6
VC++ bruger som standard 'h' som efternavn til headerfiler, ikke 'hpp'
Avatar billede soreno Praktikant
06. februar 2003 - 16:54 #7
Du skal include windows.h
altså:
#include <windows.h>

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    ShellExecute(0, "open", ".\\sider\\start.htm", 0, 0, SW_NORMAL);
    return 0;
}
Avatar billede moejensen Nybegynder
06. februar 2003 - 17:00 #8
Nu får jeg følgende fejl:

Compiling...
autorun.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/autorun.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

autorun.exe - 2 error(s), 0 warning(s)
Avatar billede jpk Nybegynder
06. februar 2003 - 17:02 #9
Det tyder på det er et console projekt du har oprettet og ikke et Windows projekt..?
Avatar billede soreno Praktikant
06. februar 2003 - 17:30 #10
Du skal angive at subsystem skal være "windows" istedet for "console". (i "linker options" i "project settings").
Avatar billede moejensen Nybegynder
06. februar 2003 - 17:46 #11
jpk, du havde helt ret - Det er vidst lidt for længe sinde jeg har rodet med C++

er der en nem måde jeg kan ændre koden på, så den tager en variabel og sætter ind som det der skal køres, så jeg ex kan skrive: autorun.exe start\satrt.htm eller autorun.exe notepad.exe??
Avatar billede soreno Praktikant
06. februar 2003 - 18:02 #12
Jeg plejer at bruge følgende:

#include <windows.h>

int main(int argc, char **argv)
{
    if(argc==2)
        ShellExecute(NULL, "open", argv[1], NULL, NULL, SW_NORMAL);
    return 0;
}

Husk at sætte subsystem til "windows" - ellers popper der en konsolboks op..

Så kan man skrive (jeg kalder programmet execute):
execute.exe notepad
execute.exe index.html
Avatar billede moejensen Nybegynder
06. februar 2003 - 18:21 #13
kanon, hvor sætter jeg subsystem til windows?? er det noget jeg skal sætte op i c++?

hvis jeg nu vil have et specielt icon på min fil, er det så ikke bare at tilføje den til projektet?? har nemlig prøvet, men det virker ikke?

Jeg har desværre kun in intro version, så det kan selvfølgelig være derfor jeg har problemer med iconet.
Avatar billede soreno Praktikant
06. februar 2003 - 19:05 #14
Det er ved at være et års tid siden jeg sidst har prøvet MSVC++ - men jeg mener man angiver subsystem her:

"Du skal angive at subsystem skal være "windows" istedet for "console". (i "linker options" i "project settings")."

Det er en boks hvor alle parametre står i du skal kigge (der er flere linier og subsystem er et af de sidste parametre - så vidt jeg husker).
Avatar billede moejensen Nybegynder
06. februar 2003 - 19:46 #15
hvad med icon, ved du hvordan jeg sætter det ind?
Avatar billede soreno Praktikant
06. februar 2003 - 19:52 #16
Nej, det kan jeg ikke guide dig igennem (kan ikke huske det).

Men du kunne jo bruge en "resource hacker" til at ændre ikonet i din exe fil. Søg selv på google..
Avatar billede moejensen Nybegynder
13. februar 2003 - 07:19 #17
--> soreno

Når jeg prøver at compaile det eksempel du har skrevet for logle post siden (eksemplet der kan tage alle slags filer) så får jeg følgende fejl:

--------------------Configuration: autorun - Win32 Debug--------------------
Compiling...
autorun.cpp
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/autorun.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

autorun.exe - 2 error(s), 0 warning(s)
Avatar billede jpk Nybegynder
13. februar 2003 - 09:13 #18
Kompilerer du til unicode?
Avatar billede moejensen Nybegynder
13. februar 2003 - 10:02 #19
jeg skulle gerne kompilere til en exe fil
Avatar billede soreno Praktikant
13. februar 2003 - 10:47 #20
Jeg er ikke i stand til at hjælpe da jeg ikke selv har adgang til MSVC++.
Avatar billede jpk Nybegynder
13. februar 2003 - 11:19 #21
ja ja, men bliver det kompileret som MBCS eller UNICODE?

Prøv evt. at kigge under Project->Settings, fanebladet C++, Categori=General.
I feltet Preprocessor definitions står sansynligvis enten angive _MBCS eller _UNICODE
Avatar billede moejensen Nybegynder
13. februar 2003 - 11:29 #22
der står kun: WIN32,_DEBUG,_WINDOWS under defenitions.

Jeg bruger Visual studio .net

hvis jeg trykker på ... ud for defenitions kan jeg se at under inherited values står der _MBCS
Avatar billede moejensen Nybegynder
13. februar 2003 - 14:30 #23
KAn jeg eventuelt få en af jer til at compilere den til mig, og sende den til min mail: k_moe_jensen@hotmail.com - sår nemlig at mangler den i en version der ikke er ophavsret på?
Avatar billede soreno Praktikant
13. februar 2003 - 14:59 #24
Avatar billede moejensen Nybegynder
13. februar 2003 - 21:35 #25
tusind mange tak :-)
Avatar billede moejensen Nybegynder
17. februar 2003 - 18:25 #26
--> soreno

jeg har prøvet din execute fil med følgende ini fil

[autorun]
OPEN=execute.exe /side/start.htm

men den vil ikke virke, hvad gør jeg galt?
Avatar billede soreno Praktikant
17. februar 2003 - 18:43 #27
hvis du struktur ser sådan ud:
e:\autorun.inf
e:\side\start.htm

så skal det gøres sådan:
OPEN=execute.exe side\start.htm
Avatar billede moejensen Nybegynder
17. februar 2003 - 19:40 #28
Ken jeg ikke få det til at virke. Jeg får ingen fejl, men der bliver ikke åbnet noget, når jeg sætter cd'en i
Avatar billede moejensen Nybegynder
17. februar 2003 - 19:40 #29
ups...

Der skulle stå "Jeg kan ikke.."
Avatar billede moejensen Nybegynder
17. februar 2003 - 21:23 #30
så har jeg selv fundet løsningen, jeg manglede \ foran side, så der skulle stå:

OPEN=execute.exe \side\start.htm
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester