Paar vraagjes

Status
Niet open voor verdere reacties.

SuperABC

Gebruiker
Lid geworden
16 jul 2009
Berichten
327
+ Ik heb een dingetje gemaakt die #include <wininet.h>. Deze moet ik dus ook linken dus via:

(Visual C++)
Project -> ... Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies

Daar voeg ik dan aan toe wininet.lib dan werkt die. Echter als ik het progje op een XP computer zet dan doet die het niet. De enigste SDK van Windows die ik heb is versie 6.0A en daar haalt hij toevallig die lib uit. Maar daardoor werkt die dus niet op XP, wat kan ik daar aan doen? Ik heb gezocht maar er is niet een SDK voor XP.


- En sinds kort maakt die, weet ik veel waarom, geen Release exe meer. Dat heb ik wel aanstaan bij:

Build -> Batch Build

Maar hij doet dat gewoon NIET, dat kwam opeens:confused:


- En nog iets, hoe komt het dat mijn progje veel geheugen gebruikt? Ik heb bijvoorbeeld dit:


ofstream * outfile;
//blablabla

outfile->close();
delete outfile;


Maar voor die bewerking neemt het geheugen met 200KB toe, het deleten helpt wel iets maar heel weinig. Hoe komt dat dan? Maar als ik hem vrij lang laat aan staan neemt het geheugen heel ver af!?


+ Nog iets als ik iets in het register probeer te schijven onder HKEY_LOCAL_MACHINE heeft dit geen effect, onder HKEY_CURRENT_USER werkt het wel. Heeft dat iets te maken met al die permissie zut in Vista?


+ De virtual key code voor de * en de +, op het numpad gedeelte?
 
Laatst bewerkt:
ipv toevoegen aan additional dependencies kun je ook zo een library includen
Code:
#pragma comment(lib, "wininet.lib")

en numpad * is VK_MULTIPLY
numpad + is VK_ADD

en dat je niet kan schrijven in een LOCAL_MACHINE register heeft idd te maken met permissies bla bla bla.
je moet je programma als administrator uitvoeren, je kunt je vista forceren dit te doen in Visual Studio zo:
Properties > Configuration Properties > Linker > Manifest File > UAC Execution Level veranderen in requireAdministrator.
 
Laatst bewerkt:
Thanks...:thumb:

Nu maakt die opeens wel weer Release exe's. Het geheugen heb ik ook al goed door de opdracht in een void te plaatsen, eerst stond die namelijk in VOID CALLBACK TimerProc, dat blijkt dus iets uit te maken? Nu roept die TimerProc dus de void aan, en neemt het geheugen niet meer toe...;)
 
Voor letters a tot z hebben ze geen virtual key codes, dus heb ik uitgevonden dat je dan kan doen
case
'A' maar dat lijkt niet te werken op XP?! Waar heb ik het toch aan te danken dat mijn progjes vaak maar half werken op XP:(
 
de VK codes van a-z bestaan wel:
VK_KEY_A
VK_KEY_B
VK_KEY_C
enz.

Alleen het probleem ligt waarschijnlijk ergens anders want je kunt deze gewoon vervangen door 'A', 'B', 'C' enzovoort zonder problemen.

Op welke manier handle je de keys?
 
Bij mij dus niet?

Error 2 error C2065: 'VK_KEY_A' : undeclared identifier
 
hier is de lijst van virtual key codes in windows, en ze staan er idd niet bij :confused:
http://msdn.microsoft.com/en-us/library/ms927178.aspx

hier is een lang artikel die ook beschrijft hoe je displayable characters moet gebruiken.
http://msdn.microsoft.com/en-us/library/ms646268(v=VS.85).aspx

de code die ze gebruiken om die displayable characters te lezen is deze:
Code:
char ch = (TCHAR)wParam;
zo kun je dit in een switch statement verwerken:
Code:
switch(wParam)
{
 case VK_LEFT:
 break;
 // eerst alle andere keys handlen
 default:
 {
   char ch = (TCHAR)wParam;
   if(ch == 'A')
    ; // 'A' ingetoetst
 } 
 break;
}

ik ga er hier vanuit dat je je keystrokes leest als reactie op de WM_CHAR message die naar je window is gestuurd
 
Laatst bewerkt:
Het blijkt toch wel te werken op XP.

En de toegang is bijna standard geweigerd om een file in C:\Windows\ te maken? Op Xp en Vista? Waarom mag dat niet, het gaat enkel om een text file?!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan