appFileCreator etc.

  • 8 Odpowiedzi
  • 1442 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

appFileCreator etc.
« dnia: Lipiec 23, 2001, 15:31:00 »
potrzebuje w moim programiku na palmos dynamicznie zmieniac stan




roznych widgetow (np. list) aby to osiagnac potrzebuje wyciagnac




z bazy danych strukture objektu ktory sie zmienia. I tu napotkalem




na pierwszy problem.









w wiekszosci przykladow jest definicja:






















a potem w jakiejs funkcji instrukcje otwarcia bazy resource'ow









DmOpenRef dbrp;









dbrp = DmOpenDatabaseByTypeCreator ('rsrc', appFileCreator, dmModeReadWrite);














z tego co zauwazyle to definicja appFileCreator nie nadaje mi




identyfikatora dla mojego programu i moja baza danych nie otwiera sie.




interface zrobilem sobie w *prcui* prubowalem nadac sobie id




takze w taki sposob:









APPLICATION ID MojProgram 'xyz1'









tak by byly takie same jak w definicji ale i to nie pomaga.

appFileCreator etc.
« Odpowiedź #1 dnia: Lipiec 25, 2001, 00:31:00 »
Po pierwsze: sciagnij sobie xPDB:




http://www.geocities.com/SiliconValley/Circuit/2090









xPDB to aplikacja windowsowa do dumpowania baz danych, czyli do podgladu jej naglowka i poszczegolnych rekordow.

appFileCreator etc.
« Odpowiedź #2 dnia: Lipiec 25, 2001, 01:08:00 »
Po drugie: Czy Ty chcesz otworzyc baze zasobow, ktore sa umieszczone razem z kodem binarnym w pliku .prc? Jestes pewien, ze CreatorID Twojej aplikacji + string 'rsrc' (oznaczajacy typ bazy) maja Ci dac dostep do zasobow? Moze to inny string, a 'rscr' byl tylko przykladem.









Definicje wszystkich typow znajduja sie w SDK w pliku




sdk\include\Core\System\SystemResources.h

appFileCreator etc.
« Odpowiedź #3 dnia: Lipiec 25, 2001, 01:22:00 »
W podreczniku O\'Relly (PDF) napisane jest tak:









--









A resource is a relocatable block marked with a four-byte type (usually represented as four characters, like




CODE or tSTR) and a two-byte ID. Resources are stored in a resource database (on the desktop, these files




end in the extension .PRC).









An application is a resource database. One of the resources in this database contains code, another resource




contains the application\'s name, another the application\'s icon, and the rest contain the forms, alerts, menus,




strings, and other elements of the application. The Palm OS uses these resources directly from the storage




heap (after locking them) via the Resource Manager.









--









Byc moze wiec zamiast \'rsrc\' powinienes wstawiac typ konkretnego zasobu. Kody zasobow znajduja sie w:




sdk\\include\\Core\\UI\\UIResources.h









Sam nigdy tego nie robilem, wiec moze byc tak, ze myle pewne pojecia..

appFileCreator etc.
« Odpowiedź #4 dnia: Lipiec 25, 2001, 01:24:00 »
Chyba jednak zle mowie - typ zasobu i typ bazy to dwie rozne rzeczy..

appFileCreator etc.
« Odpowiedź #5 dnia: Lipiec 25, 2001, 02:01:00 »
Oczywiscie, ze namieszalem. Potrzebujesz otworzyc baze pliku .prc. Jej typ to 'appl'. Zasoby sa rekordami tej bazy. Zasoby sa roznych typow. Typ zasobu musisz znac do operacji z rodziny DmBlaBlaResourceBlaBla();

















wiec powinienes zaczac od:









dbrp = DmOpenDatabaseByTypeCreator ('appl', appFileCreator, dmModeReadWrite);









a potem na przyklad:









DmNewResource(dbrp, 'tSTR', 0, sizeof(iles_tam));









Jak cos sie uda zrobic to sie podziel spotrzezeniami, ok?!

appFileCreator etc.
« Odpowiedź #6 dnia: Lipiec 25, 2001, 09:32:00 »
na razie sie nie da ...









mam cos takiego




















int * dbrp;









dbrp = DmOpenDatabaseByTypeCreator('appl',appFileCreator, dmModeReadWrite);









if (dbrp) {




   WinDrawChars("Cool",4,10,10);




}




else{




   WinDrawChars("Disaster",8,10,10);




}









no i wyswietla mi sie disaster :

appFileCreator etc.
« Odpowiedź #7 dnia: Lipiec 25, 2001, 16:42:00 »
Hmm.. Proba otwarcia bazy moze skonczyc sie pomyslnie lub z bledem. Typow bledow jest mnostwo. Moze warto by zobaczyc, ktory z tych bledow jest zwracany?









Przy okazji.. Brakowalo mi czegos takiego jak WinDrawChars() do szybkiego debugowania - dzieki za pomysl :)

appFileCreator etc.
« Odpowiedź #8 dnia: Październik 24, 2001, 01:59:19 »
Przy okazji.. Brakowalo mi czegos takiego jak WinDrawChars() do szybkiego debugowania - dzieki za pomysl :)



W prc-tools jest printf() :) Ale najlepsze moim zdaniem jest polaczenie Emulatora z PalmReporter oraz funkcji HostTraceOutputBlaBla()