Avatar billede Slettet bruger
22. marts 2000 - 21:37 Der er 13 kommentarer

win32 og win16 i dlphi programmer

jeg har lavet et program til win nt, som vi ahr på min skole, jeg bruger selv win98 på min egen comp programmet funker det fint
men i nt siger den this program can only run in win32
hvordan kan man lave det om til at være et win16 porgram sådan at det kan køre i nt?
Avatar billede lrj Nybegynder
22. marts 2000 - 21:52 #1
du kan ikke lave win16 programmer med delphi - så skulle det lige være med version 1, og det tror jeg ikke du er interesseret i :)

NT kan godt køre de programmer du har lavet i Delphi, der er bare nogle ting du skal være opmærksom på. Hvad er det helt nøjagtigt dit program gør?
Avatar billede sjensen Nybegynder
22. marts 2000 - 23:20 #2
Der er helt omvendt:

Delphi 1 lavede 16bit programmer der kunne virke under Windows 3.1 og 3.11 og samtidig under Win95. Fra Delphi version 2 og fremefter, laver delphi 32bit programmer som er den standard Win95 oprindeligt blev nygget til, og som hhv., Win98, Win NT og Win2K alle bruger.

I 16bit kan man kun tælle til 32767 hvorfor 16 bit programmer er begrænset af denne memorygrænse. Med lidt snilde kan man for positive tal få dette til at blive 64.000 som er den grænse for filstørrelser f.eks. Notepad under 95 har. Af samme årsag er en max. Diskstørrelse (pr. partition) 2gb.

Med 32 bit kan man tælle til 2.14 milliarder og derfor er der ikke længere nogen praktisk grænse for de fleste programmer.

Så det du vil for at kunne køre under NT er at lave 32 bit programmer.

NT kan dog godt køre 16 bit programmer (som mange dos programmer gør) men NT er udstyret med et styring der omdanner disse til 32 bit mens de kører således at de alligevel overholder NT minimums standard.

Men du vrøvler jo også selv lidt i dit spm. Du siger at fejlen siger at "i NT skal programmet køre under 32bit" og samtidig spørger du hvordan du kan ændre det til at køre 16 bit "således at det kan køre under NT."

Hvis du har lavet programmet i Delphi 1, som et 16 bit ville det normalt kunne køre under NT hvis du ikke har brugt direkte memoryadressering eller f.eks. port (I/O-porte) adgang. Hvis der er det i programmer vil det ikke køre under NT.

Find en Delphi 2 og kompiler programmer med den så vil det fungere fint under NT.
Avatar billede pellelil Nybegynder
23. marts 2000 - 07:54 #3
Som det er skrevet, med mindre du bruger Delphi1, så skulle det gerne være en 32 Bit application som du har fremstillet.

SJensen har ikke helt ret, men han er inde på noget rigtigt. En 16 bit variabel kan ikke håndtere værdier stårre end 65535. Man brugte dengang (hold da kæft hvor føler man sig lige pludslig gammel) 20 bit til at sammensætte en adresse. Men det er nu hverken de 16 eller de 20 bit (intern i maskinen) der begræser diskstørrelsen til 2 GB, derimod er det FAT'ens opbygning.

Jeg har ikke prøvet, men jeg tror da nok at NT kan køre 16 Bit programmer, dog ikke lige "så godt" som W95/98.
Avatar billede Slettet bruger
23. marts 2000 - 22:23 #4
mit program er en slags msg sender hvor den skriver : net send (brgeren man vælger) (beskeden man skriver)
og så kører den filen i stedet for at amn skal ud i dos prompten og skrive det.
jamen hvis den kan køre som i siger den kan hvorfor siger den så can only run in win32????
Avatar billede lrj Nybegynder
25. marts 2000 - 23:24 #5
loc> net send kommandoen - er det noget dit program har rettigheder til at udføre på NT - det er nemlig, svjv, ofte her problemet er med win9x programmer der overføres til NT...
Avatar billede Slettet bruger
26. marts 2000 - 13:34 #6
kommandoen net send findes faktisk kun i nt og win 2k og mange af mine venner sender beskeder til hinanden fra en dos prompt så det har man adgang til
Avatar billede lrj Nybegynder
26. marts 2000 - 14:29 #7
Hmm, og det program du kører - det har også rettigheder til det? Jeg har nemlig ikke 100% styr på hvordan rettigheder fungerer på NT/2K. Men ellers kan du da bare lave en bacth-fil der gør det samme :o)

I win95/98, hvis du angiver at parameteren til et program skal være -? så får du en box op hvor du kan indtaste command-line parametre - kombineret med ovenstående har du så en løsning på 2 linjer - hvilket da i hvert fald er overskueligt :)
Avatar billede Slettet bruger
26. marts 2000 - 16:30 #8
net send kommandoen findes ikke i win98/95 kun i 2k og nt
og ja man kan bare lave en bat fil som så sender beskeden
Avatar billede lrj Nybegynder
17. april 2000 - 13:41 #9
Så det var et svar?
Avatar billede Slettet bruger
17. april 2000 - 21:03 #10
jeg har stadig ikke fundet ud af det
så bare kom med flere ideer
Avatar billede lrj Nybegynder
18. april 2000 - 13:39 #11
Okey.

Har desværre ikke styr på detaljerne i problematikken - men måske kunne du uploade din source til en eller anden server, og så paste URL'en her - så kunne man da lige se om der var noget man kunne få øje på...
Avatar billede Slettet bruger
23. april 2000 - 19:32 #12
det gør jeg
jeg skriver adressen senere
Avatar billede Slettet bruger
24. april 2000 - 15:37 #13
der ligger nu en ace fil på http://home5.inet.tele.dk/acel/msg.ace
der ligger hele koden

kig på koden men ikke lige på layoutet da det ikker er færdigt.
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