Some quick debug type questions (ignore if already tried):
1. Did you make sure the object indicated in nObj actually exists? Did it load correctly?
2. Make sure you are using the correct limb index base - the indices are 0 based.
That said, it might be how you are using it that is the problem (due to not very good documentation at this stage).
The actual results are returned as a char* value by the function. It doesn't put anything usefull in the first calling parameter. Continue to put a string variable there (as you are), but define and use a char* to get the actual data, like this:
char dummy[1024];
char* szLookUp;
szLookUp = dbLimbName((DWORD)dummy,nObj,nLimb);
-- use szLookUp how you like --
Do NOT delete szLookUp when done. That causes a crash.
Some of the DGSdk functions return dynamically created strings and the results need to be deleted when done, or there are memory leaks. I don't know how dbLimbName constructs what it returns (it might be a pointer directly into the named strings in the model memory), but deleting it's returned value causes program crashing.
Cheers,
Ancient Lady