这主要是参数调用规则的问题,在c中,缺省是非Pascal调用规则(c里的调用规则名总是记不住),而其它多数语言都是Pascal调用规则,所以用VC编的DLL要想让其它语言用的话就必须遵循这个规则,因此在VC的DLL中要使用Pascal来定义输入函数,例如:
extern"C" __decelspace(export) __stdcall int Function( LPCSTR str , ....)
 __decelspace(export) 这一段我也不太记得了,因为最近很少动VC了,不过这一句你是一定用到了
另外,好象加了__stdcall 后函数名是会改变的,你还得在 def 文件中输出 
如果不是上面的问题,那么你可能是想向PB中转入或返回诸如PVOID 或 BYTE*等类似于PB中的BLOB数据,那是没法了(我是这样的),因为LPVOID 与BYTE*都对应于PB中的String,而把String 转变为BLOB时好象会出问题(其实是从DLL库中返回了不对的数据)