Z
Zenon
Folks,
I am having a problem storing a port number read from a registry and
creating a thread, and I cannot figure out why. Here are the relevant
details:
I have a struct called SOCKET_INFO in a header file called
socketthreadcommon.h
typedef struct{
char szHost[50];
int nPort;
DWORD dwLastError;
BOOL bListening;
BOOL bCalling;
BOOL bConnected;
BOOL bAbort;
BOOL bTestWithoutSocket;
UINT nMsgSentCount;
float fHeadingInStatusMsg;
HANDLE hEventQueueNotEmpty;
MsgQueueSocketType MsgQueue[MSGQUEUEMAX];
UINT MsgQueueFreeIdx;
UINT MsgQueueUsedIdx;
} SOCKET_INFO;
I create an instance of this struct in a file called realerdlg.h
SOCKET_INFO m_ServerSocketInfo;
realerdlg.cpp sets the value of the nPort member
m_ServerSocketInfo.nPort = (int)(dwPort);
and finally, I am attempting to create a socket with the statement:
CWinThread *lpThread = AfxBeginThread(ServerSocketThread, (LPVOID)
&m_ServerSocketInfo);
The dwPort variable is correct and verified. In the
serversocketthread.cpp class, I cannot pick up the
value of nPort. The constructor there is
UINT ServerSocketThread( LPVOID lpInf )
{
SOCKADDR_IN Addr;
int AddrLen;
SOCKET_INFO* lpInfo = (SOCKET_INFO *) lpInf;
int nRetValue = 0;
CSocket ServerSocket;
BOOL bDone = FALSE;
CSocket ClientSocket;
MsgQueueSocketType MsgQueue;
int nBytes;
CRegistry Registry; // Registry object
PROGRAM_TYPE Program;
CTime CurrentTime;
}
This is code I inherited and am trying to debug... Does anyone have
any ideas?
thanks very much,
Zenon
I am having a problem storing a port number read from a registry and
creating a thread, and I cannot figure out why. Here are the relevant
details:
I have a struct called SOCKET_INFO in a header file called
socketthreadcommon.h
typedef struct{
char szHost[50];
int nPort;
DWORD dwLastError;
BOOL bListening;
BOOL bCalling;
BOOL bConnected;
BOOL bAbort;
BOOL bTestWithoutSocket;
UINT nMsgSentCount;
float fHeadingInStatusMsg;
HANDLE hEventQueueNotEmpty;
MsgQueueSocketType MsgQueue[MSGQUEUEMAX];
UINT MsgQueueFreeIdx;
UINT MsgQueueUsedIdx;
} SOCKET_INFO;
I create an instance of this struct in a file called realerdlg.h
SOCKET_INFO m_ServerSocketInfo;
realerdlg.cpp sets the value of the nPort member
m_ServerSocketInfo.nPort = (int)(dwPort);
and finally, I am attempting to create a socket with the statement:
CWinThread *lpThread = AfxBeginThread(ServerSocketThread, (LPVOID)
&m_ServerSocketInfo);
The dwPort variable is correct and verified. In the
serversocketthread.cpp class, I cannot pick up the
value of nPort. The constructor there is
UINT ServerSocketThread( LPVOID lpInf )
{
SOCKADDR_IN Addr;
int AddrLen;
SOCKET_INFO* lpInfo = (SOCKET_INFO *) lpInf;
int nRetValue = 0;
CSocket ServerSocket;
BOOL bDone = FALSE;
CSocket ClientSocket;
MsgQueueSocketType MsgQueue;
int nBytes;
CRegistry Registry; // Registry object
PROGRAM_TYPE Program;
CTime CurrentTime;
}
This is code I inherited and am trying to debug... Does anyone have
any ideas?
thanks very much,
Zenon