Avatar billede odni Nybegynder
14. september 2004 - 20:16 Der er 14 kommentarer og
1 løsning

C(s/pp) kompatibilitet blandt styresystemerne

Ja, endnu en af de sikkert flere c++ vs c# tråde. Jeg lagde den i c/c++, da jeg tror, I sikkert har en allround viden herinde ;)

Denne gang går den på, at jeg skal have lavet et grafisk windowsprogram, der kræver færrest afhængigheder. Dvs. jeg gerne vil have mit program til at køre fra winXP sp2 og helt ned til win95. Win98 kan også gøre det.

Dertil skal man (brugeren) helst ikke have installeret noget som helst, for at programmet skal kunne fungere optimalt (udover windowsinstallationen, selvfølgelig).

Jeg skal bl.a. rode med seriel kommunikation via com-portene, tekst I/O og, som beskrevet, lave grafiske vinduer m. menuer, inputdata og hvad der ellers hører til.

Jeg mener at have hørt, at .NET c++ kræver, at brugeren har installeret et eller andet, hvilket jeg ville foretrække at undgå. Som sagt, måtte det gerne kunne køre på win98.

C# er en anden mulighed, som jeg for nyligt er blevet introduceret til. Kræves der noget af brugeren i dette tilfælde? C# skulle være på et højere niveau end c++ ... kan jeg stadig styre alt I/O til com-portene?

Jeg har programmeret i VC++ 6.0 (og lidt andet webhalløj), men ville da lige høre alternativerne. Skriv endelig, hvis jeg mangler at beskrive noget - takker mange gange!
Avatar billede arne_v Ekspert
14. september 2004 - 20:21 #1
C# kræver ligesom managed C++ at .NET framework er installeret - det er ikke
så slemt ca. 20 MB som kan hentes med Widnows Update hvis man vil.

Jeg mener at de påstår at .NET kan køre på Win98 (men ikek Win95). Jeg mener
dog at der er mange som har haft problemer på 98 og ME, så jeg vil nok
kun anbefale det til 2000/XP/2003.

.NET (C# eller VB.NET eller managed C++) vil være nemmere end unmanaged C++
til at lave GUI i.

Til gengæld er unmnaged C++ nok bedre til COM porte.

Console IO er der ikke nogen der har problemer med.

Jeg tror at unmanaged C++ er den bedste tekniske løsning.

Men at C# og .NET muligvis vil være den mest interessante løsning.
Avatar billede odni Nybegynder
14. september 2004 - 20:31 #2
Sagen er, at jeg allerede er startet blidt op med lidt c++. Det grafiske har jeg fået til at hænge sammen (bruger winapi - mfc må komme på et andet tidspunkt), så dette skal du ikke bekymre dig om.

Når du siger managed og unmanaged forstår jeg det som "det nye og det gamle". Hvad ligger der mere i det ? (Hvorfor hedder det, som det gør?)

Hvis jeg gik ud og investerede i f.eks. VC++ 7.0, .NET, og kørte den i unmanaged, ville jeg kunne køre i samme spor som 6.0, men med opdateret debug og lidt bugfixes hist og her - rigtigt forstået ?

I VB er det noget skidt at lave mere end blot lidt forsjovjegkedermig-programmer, så valget står, om jeg skal tage C# eller C++ i enten .NET unmanaged eller køre videre i 6.0.

Programmet _skal_ kunne køre win98, så jeg må vinke farvel til .NET formentlig? Betyder dette noget væsentligt?
Avatar billede arne_v Ekspert
14. september 2004 - 20:35 #3
unmanaged = native EXE
managed = .NET

.NET programmer kører i/med .NET runtime som ordner en del ting bl.a.
garbage colelction så man ikke selv skal huske at deallokere memory.

VC++ 2003 (alias 7.1) unmanaged kode burde være helt VC++ 6.0 kompatibelt.

VB.NET er på den måde meget anderledes end VB6.

MS hævder at .NET kan køre på 98. Men hvis du søger her vil du se at mange har haft
problemer med det.
Avatar billede arne_v Ekspert
14. september 2004 - 20:42 #4
http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&DisplayLang=en

Supported Operating Systems: Windows 2000, Windows 98, Windows ME, Windows NT, Windows XP

(den kommer med Windows 2003)
Avatar billede odni Nybegynder
14. september 2004 - 20:44 #5
Men det bliver, ligegyldigt hvad, nødvendigt at installere det framework.

Jeg synes nu det peger hen i retning af unmanaged m. native exe i stil med VC++ 6.0, hvis mine krav skal opfyldes.

Vil jeg evt. få noget ud af, at opgradere min VC++ 6.0 til en 7.0'r, .NET, 2003, eller hvafan den efterhånden kaldes ;)

Takker for dine kommentarer, det er guld værd. Læg du et svar ;)
Avatar billede arne_v Ekspert
14. september 2004 - 20:47 #6
Ikke vildt meget.

Jeg tror at den nye er lidt mere ANSI C++ kompatibel og den har sikkert fået
fixet nogle bugs.

Men hvis du vil skrive unmanaged kode, så kan jeg ikke se nogen presserende
grund til at upgrade.
Avatar billede arne_v Ekspert
14. september 2004 - 20:47 #7
svar
Avatar billede odni Nybegynder
14. september 2004 - 20:52 #8
Så tror jeg, jeg kører videre i samme stil. Så sparede jeg da de penge og den tid.

Jeg takker mange gange og vender stærkt tilbage, hvis det går helt galt ;)
Avatar billede bertelbrander Praktikant
14. september 2004 - 20:53 #9
7.0 er meget mere Ansi C++ kompatibel. Hvis du vil bruge STL og/eller templates kan det kraftigt anbefales at opdatere til 7.0
Avatar billede odni Nybegynder
14. september 2004 - 20:56 #10
Jeg ved jeg har afgivet fortjente point, men, bertelbrander, hvad skulle jeg evt. bruge STL og templates til? Jeg kender i øjeblikket ikke til dette, men det kan da være, man skal stifte bekendtskab?
Avatar billede bertelbrander Praktikant
14. september 2004 - 21:01 #11
Containere: map, list, set, vector, etc.

stl bruger templates.

Når du har vennet dig til templates kan du ikke leve uden. Med 6.0 er den hyppiste fejl besked hvis du laver fejl i dine templates: "Internal compiler error". Gennerelt kan 6.0 ikke finde ud af at lave templates der virker med andre kompilere.
Avatar billede odni Nybegynder
14. september 2004 - 21:05 #12
Læste bl.a. om vectors, hvilket lød meget attraktivt fremfor arrays.

Har du evt. nogle MSDN nøglesider, man lige burde tage et kig omkring?

Vi snakker stadigvæk unmanaged kode her, ikke ?

Takker for tipsne =)
Avatar billede arne_v Ekspert
14. september 2004 - 21:15 #13
STL er unmanaged.

.NET har egne klasser for de fleste af den slags ting.

Bemærk at STL inkl. vector også er i VC++ 6.

Men VC++ 6 STL har ry for at have en del fejl og ikke følge standarden helt.
Avatar billede bertelbrander Praktikant
14. september 2004 - 21:25 #14
Jeg bruger normalt disse:
http://www.sgi.com/tech/stl/
http://www.cppreference.com/

MFC har også sine udgaver, f.ex. CList, CArray.
Avatar billede odni Nybegynder
14. september 2004 - 21:44 #15
Jeg takker begge to. Så overlever jeg vist liige den næste uge ;)
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