Josh

 

This is really a h323plus question. I have CC’d that list. I am currently working through updating both h323plus and GnuGk compiling with the ever moving  target that is PTLIB head. You should really try to work with the latest stable 2.12.x. I will advise via the h323plus list when the issue is resolved.

 

Simon

 

From: J.C Mercier [mailto:jcmerc5@gmail.com]
Sent: 28 December 2013 14:45
To: opal
Subject: [Opalvoip-devel] Unresolved error - PIPSocket::Close

 

Good day Opal team,

 

I get the following errors when i compile a simple application derived from the H323plus sample application;

------
Error    6    error LNK2019: unresolved external symbol "public: virtual bool __thiscall PIPSocket::Close(void)" (?Close@PIPSocket@@UAE_NXZ) referenced in function "public: virtual bool __thiscall H46019MultiplexSocket::Close(void)" (?Close@H46019MultiplexSocket@@UAE_NXZ)    ..\h323plusd.lib(h46018_h225.obj)   

Error    7    error LNK2001: unresolved external symbol "public: virtual bool __thiscall PIPSocket::Close(void)" (?Close@PIPSocket@@UAE_NXZ)    ..\h323plusd.lib(rtp.obj)   

Error    8    error LNK2001: unresolved external symbol "public: virtual bool __thiscall PIPSocket::Close(void)" (?Close@PIPSocket@@UAE_NXZ)    ..\h323plusd.lib(h460_std26.obj)   

Error    9    error LNK2001: unresolved external symbol "public: virtual bool __thiscall PIPSocket::Close(void)" (?Close@PIPSocket@@UAE_NXZ)    ..\h323plusd.lib(gnugknat.obj)   

-----

I'm using the latest head version of both ptlib and h323plust.

When tracing the error, i came upon the following code snippet in winsock.cxx;

----

#if P_QWAVE
PBoolean PIPSocket::Close()
{
  if (IsOpen() && PWinSock::GetInstance().m_hQoS != NULL && m_qosFlowId != 0) {
    QOSRemoveSocketFromFlow(PWinSock::GetInstance().m_hQoS, os_handle, m_qosFlowId, 0);
    m_qosFlowId = 0;
  }

  return PSocket::Close();
}
#endif // P_QWAV

------

I managed to find the PIPSocket class in ipsock.h and it had no definition of the 'Close' function. I even looked in the PSocket class from which PIPSocket is derived from and I didn't see any definition of the 'Close' function in there either except in the PChannel class.

The first error is due to the following code from h323plus;

PBoolean H46019MultiplexSocket::Close()
{
    if (m_subSocket)
        return m_subSocket->Close();

    return PUDPSocket::Close();
}

 

Where H46019MultiplexSocket is basically derived from PUDPSocket and so forth.

I'm just curious to know if there's something that i've missed or that i may be looking in the wrong places.

I'm working with Win7 VS 2013 Express edition.

Much appreciate your help.

Thanks,

Josh