Skip to Content
Programming Visual Basic for the Palm OS
book

Programming Visual Basic for the Palm OS

by Matt Holmes, Patrick Burton, Roger Knoell
April 2002
Intermediate to advanced
440 pages
12h 37m
English
O'Reilly Media, Inc.
Content preview from Programming Visual Basic for the Palm OS

Memory Management Functions

Let’s review some of the common Palm OS SDK functions for managing memory.

To allocate memory, use MemHandleNew as follows:

typedef struct GlobalVarsType
{
   Int16   nOpenCount;     // library open count    
   Int16   nContextCount;  // number of contexts using this library
   //Other library global variables
}GlobalVarsType;

UInt32 nMemSize = sizeof(GlobalVarsType);
//Allocate global memory
MemHandle gHandle = MemHandleNew(nMemSize);

To lock a chunk of memory for read/write access, use the following sequence.

MemPtr gLockPtr;
gLockPtr = MemHandleLock(gHandle);
//read from or write to global memory
MemHandleUnlock(gHandle);

Alternatively, since MemHandleLock returns a MemPtr, you may use the following MemHandleLock/MemPtrUnlock pair:

MemPtr gLockPtr;
gLockPtr = MemHandleLock(gHandle);
//read from or write to global memory
MemPtrUnlock(gLockPtr);

To set the owner ID of memory so it belongs to the OS, you must first lock the memory chunk, set the owner ID, and then unlock the memory chunk. You typically set the owner ID immediately after creating the memory:

MemHandle gHandle = MemHandleNew(nMemSize);
MemPtr gLockPtr = MemHandleLock(gHandle);
//Set the owner to the OS, so it is not freed automatically.
MemPtrSetOwner(gLockPtr, 0);
               
MemPtrUnlock(gLockPtr);

When your library is done with its global memory—which is typically when the last application unloads it from memory—the library should free its memory using MemHandleFree, as follows:

//Our library is being closed by ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Palm OS Programming, 2nd Edition

Palm OS Programming, 2nd Edition

Julie McKeehan, Neil Rhodes
Learning C# 2005, 2nd Edition

Learning C# 2005, 2nd Edition

Jesse Liberty, Brian MacDonald

Publisher Resources

ISBN: 0596002009Catalog PageErrata