Hi, I have a project developed on openh323, because it is a more general C++ questions, I would like some C++ experts give me some hints. We customize some functions to comply our need, the details as follow: on open323 lib, we have a h323rtp.h header file declare virtual BOOL OnReceivedPDU( H323_RTPChannel & channel, /// Channel using this session. const H245_H2250LogicalChannelParameters & param, /// Acknowledgement PDU unsigned & errorCode /// Error on failure ); and in source h323rtp.c defines BOOL H323_RTP_UDP::OnReceivedPDU(H323_RTPChannel & channel, const H245_H2250LogicalChannelParameters & param, unsigned & errorCode) { //some code here } To comply our need, we override the function in our own application code with exactly same signature BOOL H323_RTP_UDP::OnReceivedPDU(H323_RTPChannel & channel, const H245_H2250LogicalChannelParameters & param, unsigned & errorCode) { //some customized code here } When I build it with gcc under Linux, the funtion in our applicatoin gets called, which is what we want. But when I compile/build it with M$ Visual Studio C++ 6.0, it seems only the original function in h323rtp.c is called, out customized function is never called. So what is the difference between these 2 environments? How can my customzied function also get called in Windows? How the declare and definination is bind? Hope some people who has cross-platform experience can give me some hints. Thanks Kun ============================================== Kun Wei MC 256-48, Caltech Pasadena, CA 91125 Phone: 626-395-8767 Fax: 626-795-3951 Url: http://www.its.caltech.edu/~weikun