Jeg får følgende fejl hvis jeg inkluderer afx.h, men jeg kan stadig ikke kalde AfxMessageBox. Jeg kan godt kalde MessageBox, men jeg ved ikke hvordan jeg får sat teksterne i boksen (kan heller ikke kalde CString)
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
ja... Jeg forstår ikke hvad der er galt, for de andre programmer jeg har lavet fungerer fint, men dette er en wizard (ikke standard), men derfor skulle man da sagtens kunne bruge MFC alligevel...
Det kan jeg ikke, det meste af koden er ikke offentlig tilgængelig...
Jeg kan fortælle dig hvilke includes der er og diverse indstillinger: Hovedfilen: #include "stdafx.h" #include "ServerMIDL.h" (wizard genereret) #include "ServerName_Test3_Class.h" (wizard genereret header til hovedfilen)
Jeg må indrømme jeg er lidt på bar bund, for de andre ting jeg har lavet f.eks. almindelig dialog app. virker fint, med stort set samme includes...
// stdafx.cpp : source file that includes just the standard includes // stdafx.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information
Beklager, ovenstående var stdafx.cpp. Her er stdafx.h
// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, // but are changed infrequently
Når jeg sagde kendt på kompileringstidspunktet, så mener jeg at når der kompileres for jeg ikke "undeclared identifier" eller lignende fejl, men hvis jeg bruger dit eksempel (har selv prøvet noget lignende) får jeg dette resultat:
error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'char [34]' to 'const unsigned short *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
NB det er ikke fordi jeg har stavet MessageBox forkert...
Funktionen MessageBox er definere flere steder, bl.a. i klasserne CWindow og CWnd (MFC) og også under global namespace. :: betyder at du vil anvende den der er defineret under global namespace.
Okay, det er fordi du bruger et 16-bit karakter sæt!!! Når du prefixer teksten med L, fortæller du compileren at der er tale om wide character. Det tyder på du kompilerer til unicode...
Det biver muligheden for at bruge karaktersæt der ikke kan beskrives i 8 bit. det er egentlig en god skik altid at anvende L før en tekst, da koden så også kan kompileres som unicode. Når man vælger at bruge unicode, fylder programmet en lille smule mere i memory, da der anvendes 16 bit for hver karakter og ikke 8. Det er dog ikke noget du skal bekymre dig om...
Det skal jeg nok :-) Hvis jeg finder en løsning skal jeg også nok vende tilbage...
Synes godt om
Ny brugerNybegynder
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.