After a second look at the array
CAtlArray implementation, I'm planning to change all the containers from value to pointer (instead of
CAtlArray, I will change this to
CAtlArray). The reason is quite simple: when growing the buffer through
Add, the existing items are moved to the new buffer with a simple
Checked::memmove_s call. The contained class copy constructor is not called which may lead to memory leaks (depending on the contained class implementation). If the array merely contains pointers, everything works as expected and all memory relocations will be much faster (only the pointers are copied, not the objects themselves). The downsidr to this approach is that I will have to manually implement the code to release all the objects pointed to by the array.
Finally, don't miss this great post on the Windows Mobile Team Blog:
Uninstalling Applications Programmatically in Windows Mobile.
No comments:
Post a Comment