[WCE420, eMVC++ 4.0] Bestanden openen.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • nIghtorius
  • Registratie: Juli 2002
  • Laatst online: 11-09 13:28
Ik heb een probleem. behoorlijk gegoogled.. maar er is gewoon weinig over het onderwerp te vinden, namelijk smartphones met windows mobile 2003 (WCE420)

nu ben ik al zover dat ik bestanden kan openen maar met een grote probleem.

b.v.:
mijn toepassing staat op de map:
\Storage\Program Files\Games\MyGame\
genaamd MyGame.exe

heeft ook resource bestanden b.v.:
titel.dat, tile.dat, etc...

nu komt 't.. ik wil deze bestanden openen.. dit is me deels gelukt maar... ik moet hierbij altijd de gehele padnaam invoeren.
\Storage\Program Files\Games\MyGame\titel.dat

C:
1
2
3
4
5
6
7
HANDLE fHandle = CreateFile (L"\Storage\Program Files\Games\MyGame\titel.dat",
                             GENERIC_READ,
                             FILE_SHARE_READ,
                             NULL,
                             OPEN_EXISTING,
                             FILE_ATTRIBUTE_NORMAL, 
                             NULL);


dit werkt. maar mijn bedoeling is een manier waarbij de pad niet ingevuld hoeft te worden of iig een methode om deze padnaam te detecteren (waar de .exe bestand zich bevindt) want:

C:
1
2
3
4
5
6
7
HANDLE fHandle = CreateFile (L"titel.dat",
                             GENERIC_READ,
                             FILE_SHARE_READ,
                             NULL,
                             OPEN_EXISTING,
                             FILE_ATTRIBUTE_NORMAL, 
                             NULL);


gaat helaas niet lukken.. Iemand ideeën.. dit is mijn eerste keer dat ik WindowsCE programmeer. En gaat zoals je ziet een beetje stroef.. ;)

----------- edit ---------------

Ik ga proberen om "fopen (bestandsnaam, leesopties)" toe te passen.. kijken wat er gaat gebeuren.. (dat ik hieraan niet eerder heb gedacht... :X )

--------- edit 2 -------------

fopen doet het precies hetzelfde als CreateFile... argh... waarom nou die volledige padnaam?

---------- edit 3 -----------

Na wat koppijn moeten te lijden om achter te komen dat Windows CE geen "werkdirectory" principe kent. (auw!!!)..

maar...
ik heb 't al gevonden

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
LPWSTR  GetParentDir () {
    LPWSTR  AppPath = (LPWSTR)malloc (256);
    GetModuleFileName (NULL, AppPath, 256);
    int     pos = 0;
    int     ptr;

    do {
        if (AppPath[pos] == '\\') ptr = pos;

        pos++;      
    } while (AppPath[pos] != 0);

    AppPath [ptr+1] = 0;    // terminate string. ;)

    return AppPath;
}

[ Voor 34% gewijzigd door nIghtorius op 14-10-2004 23:36 . Reden: Modules are the answer ;) ]

Ryzen 9 5900X @ 5.1Ghz | MPG B550 GAMING CARBON | 96GB DDR4-3200 | RTX 4070TI | 2TB + 1TB m.2 SSD | 3x 1TB HDD | 1x 2TB SATA SSD | 32" G3223Q (4K/144Hz)