Visral Studio og WINAPI

Tags:    programmering

Jeg har lavet et læse/skrive program i winapi/c++ som jeg skal til at teste, og har lige et par spørgsmål i måske kan svare på her på Udvikleren:

1. Hvordan får man Visual Studio til at kompilere et program så det kan installeres på andre pc'er? .exe filen bliver altid afvist, når jeg forsøger at kopiere den.

2. Hvordan fortæller Visual Studio hvilket sprog der skal bruges ved kompileringen? Så vidt jeg kan se står alle sprog programmet kan bruge i samme .rc fil.

3. Hvordan finder man længden af en richedit kontrol i win-api? Funktionen GetWindowTextLength dur kun til alm. edit kontrol.

vh Henrik




7 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
1. Hvad mener du med at den bliver afvist?

3. Du kan bruge EM_GETTEXTLENGTHEX.




Windows vil ikke indlæse en .exe. Hvordan overfører man så programmer?



Hvad mener du med den ikke vil indlæse? Hvilken fejl får du, er det SmartScreen som blokerer, eller sker der overhovedet ikke noget? Kører du programmet på samme som du udvikler eller er det når du kører på en anden - i så fald hvilket operativsystem? Har du prøvet at bygge projektet i 'Release' mode?

Ellers kunne det være fordi der hvor du kører programmet ikke har den rigtige runtime. Men er nød til at vide hvad du gør og hvad der så sker (eller ikke sker), samt hvilke fejlmeddelelser, hvis nogen.



På den pc jeg prøver det på nu, kan det lade sig gøre at installere den compilerede .exe fil; men nu kan den ikke køre. Der står "MSVCR120D.dll findes ikke på denne computer, prøv at installere programmet igen for at få løst dette problem." Jeg har installeret det 3-4 gange med samme resultat. Hvad er det for en .dll? og hvad gør jeg ved det?




Installer den her på maskinen hvor din exe skal køre: https://www.microsoft.com/en-us/download/details.aspx?id=40784



Prøv den som Robert siger. Det er nogle dll filer (runtime) Windows skal bruge for at køre C++ kode.

Er temmelig sikker på at D'et i MSVCR120D.dll står for DEBUG og 120 at det er en runtime introduceret tilbage med VS2012. Dem får man typisk som udvikler når man installerer Visual Studio f.eks.. Men normale bruger har dem uden 'D', altså ikke til debugging. Så i stedet kan du prøve at bygge dit program med 'Release' mode, så kan det være du helt slipper for at skulle have dine brugere til at installere runtimen.

Edit: Ellers, så mener jeg at have set andre kopiere den med. Dvs. du finder MSVCR120D.dll i din Windows\system32 mappe (tror jeg) og kopierer den med i samme mappe som din .exe-fil. Men jeg ved ikke om det er dårlig stil. Hvis du gør dette burde du stadig finde den uden 'D' i, og jeg kan se en del programmer på mit system gør det således.



Indlæg senest redigeret d. 24.01.2017 00:29 af Bruger #14645
Tak for jeres svar. Nu kører det.



t