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