As long as you are sure that current_item returns a function pointer, you can write:
p=reinterpret_cast<void()(char)>(item_userptr(cur));

This casts 0x00AA8B20 to a pointer to float and dereferences it.
So it interprets 0x00AA8B20 as an address of a float value.
One would normally write this as such:
reinterpret_cast<float>(0x00AA8B20)=5000000;

DWORD is just a typedef to (u)int or (u)long.

Just run the command "pkg-config gtkmm-2.4 --cflags --libs" yourself. It will generate an output such as this:
-D_REENTRANT -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/gtk-2.0 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/atkmm-1.6 -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0

Then replace pkg-config gtkmm-2.4 --cflags --libs with that output. That's exactly what command does.

Just replace pkg-config gtkmm-2.4 --cflags --libs with its output manually.

[QUOTE=Ketsuekiame]I swear it used to do. Attempting to delete a null pointer caused me no end of issues through university so I always ended up null checking the pointer first. This may have been a quirk of MSVC though.[/QUOTE]
I suppose that's possible. I assume this was before the first C++ standard was released?
Nevertheless, it should no longer be done, as delete does nothing when the pointer is 0. An additional check is redundant.

First off, using delete on a null pointer never throws and is perfectly okay.
A SIGTRAP can indicate memory corruption or a double free. Remember that the memory corruption does not necessarily need to occur in Flob.cpp.
You also should consequently use new and delete/delete[] in your programs to avoid any problems.

Did you not see the C section? It's right below the C++ one.
But it seems that your problem is that you're trying to link a library that does not exist. If you need it for this program, you'll have to install it.

You should look up the string class method substr, it does what you need.

[CODE]string str="0092-123-1234567";
int cpos=0;
while (cpos<str.length() && str[cpos]!='-')cpos++;
if (cpos>=str.length())error(); //no '-' found
string tail=str.substr(cpos+1,str.length()-cpos-1);[/CODE]

The omnipresent i variables in your code are uncanny.
What is the purpose of the i parameter in new_user supposed to be, for example?
Or the global one?
Or the uninitialised one (!!) in account_closure?