dlsym...error

Hi,

I have ftp.so file which on nm gives the following table....

[138] |0x0000c4f8|0x000000f0|FUNC |LOCL |0 |14 |ftp_active
[160] |0x0000c00c|0x000000f0|FUNC |LOCL |0 |14 |ftp_ascii
[135] |0x0000c0fc|0x000000f0|FUNC |LOCL |0 |14 |ftp_binary
[163] |0x0000a8e0|0x000001a8|FUNC |LOCL |0 |14 |ftp_cd
[130] |0x0000bf20|0x000000ec|FUNC |LOCL |0 |14 |ftp_close
.
.
[178] |0x00000000|0x00000000|FUNC |GLOB |0 |UNDEF |Ls__9FTPClientRQ29FTPCl
ient8FileListPCc [FTPClient::Ls(FTPClient::FileList &, char const *)]

Now using dlopen and doing a dlsym on "ftp_cd", "ftp_ascii" is gives an error
saying
dlsym Couldn't find ftp_cd: ld.so.1: cor: fatal: ftp_cd: can't find symbol
while for "FTPClient::Ls(FTPClient::FileList &, char const *)" it does not give any error.
Can any one please tell me why and how can i get reference to these functions.

my code :
.
.
handle = dlopen("ftp.so",RTLD_NOW);
if(!handle) {
// print error..
}
dlerror();
fnc = ((int*)()(int)) dlsym(handle,FN_Name[i]);
if((error=dlerror())) {
// print error
}

.
.
here :
FN_Name [i]= contains mangled name entries from output of "nm" shown above.