注册 登录
编程论坛 C++教室

帮个忙,字符串拼接

a111234567 发布于 2024-07-24 19:46, 8273 次点击
CString strIPAddr;
UINT uPort;
m_pClientSocket->GetPeerName(strIPAddr,uPort);

CString strTitle;
strTitle.Format(_T("\\\\%s:%d"), strIPAddr, uPort);

SetWindowText(strTitle);

设置不成功
20 回复
#2
rjsp2024-07-25 10:07
不知所云

前面5句执行正确了吗?
如果不正确的话,你贴的这些有什么用,根本就没法看出错在哪里;
如果正确的话,你贴它干嘛,直接说“SetWindowText设置不成功”就行了

最主要的还是“设置不成功”这句话,神仙都猜不出你的意思。
字符串是“abc”,显示却是“123”,可以算不成功;一执行就导致宇宙塌缩,可以算不成功;……
提问中应该描述的是具体现象,而不是感性的结论
#3
yiyanxiyin2024-07-25 10:44
回复 楼主 a111234567
汝何定字符串拼接之祸, 武断乎
#4
a1112345672024-07-25 11:47
问一下,那个拼接有错误吗
#5
a1112345672024-07-25 11:48
第四行不能运行
#6
yiyanxiyin2024-07-25 11:57
终于为Format平反了,是俱怕它的铁t吗, 再次武断的祸水东引, 使无铁t的平民CString背锅?   平民也有t,只是你没看见或以为其为软t

[此贴子已经被作者于2024-7-25 12:01编辑过]

#7
rjsp2024-07-25 15:32
以下是引用a111234567在2024-7-25 11:48:23的发言:

第四行不能运行
第四行是 空行
第四句是 CString strIPAddr;
你下次可以直接把语句拷贝出来说

另外,什么叫“不能运行”?又说这种别人听不懂的话,你应该描述现象。
#8
a1112345672024-07-25 23:43
只有本站会员才能查看附件,请 登录
#9
a1112345672024-07-25 23:48
调试的时候提示第52行有异常,警告c6284
我的目的是想把IP地址和端口号设置到窗口的标题栏
#10
a1112345672024-07-25 23:53
只有本站会员才能查看附件,请 登录
#11
a1112345672024-07-26 00:01
我发的两张图不会挂掉吧。有谁能帮忙看看代码错在哪里!!!
#12
rjsp2024-07-26 08:29
回复 10楼 a111234567
也就是 m_pClientSocket->GetPeerName(strIPAddr,uPort); 出错了
你把它注释掉,改为
CString strIPAddr = L"127.0.0.1";
UINT uPort = 1234;
试试。
-----------------------------------
既然问题在 m_pClientSocket 或 GetPeerName 中,你不将它们的代码贴出来,只贴调用的代码有啥用。
#13
yiyanxiyin2024-07-26 09:53
先把GetPeerName整醒豁, 如果祸由它起, 其将返回非0, 0则无过, 勿以邻为壑行祸水东引胡乱断案之举.

[此贴子已经被作者于2024-7-26 09:55编辑过]

#14
a1112345672024-07-26 10:18
回复 12楼 rjsp
只有本站会员才能查看附件,请 登录
#15
a1112345672024-07-26 10:18
回复 12楼 rjsp
只有本站会员才能查看附件,请 登录
#16
a1112345672024-07-26 10:22
CString strIPAddr = L"127.0.0.1";
UINT uPort = 1234;

改成这个可以
#17
a1112345672024-07-26 10:27



BEGIN_MESSAGE_MAP(CShowDlg, CDialogEx)
END_MESSAGE_MAP()


// CShowDlg 消息处理程序


void CShowDlg::PostNcDestroy()
{
    // TODO: 在此添加专用代码和/或调用基类
    delete this;

    CDialogEx::PostNcDestroy();
}


BOOL CShowDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    // TODO:  在此添加额外的初始化
    CString strIPAddress;
    UINT uPort;
    m_pClientSocket->GetPeerName(strIPAddress,uPort);
    //CString strIPAddr = TEXT("127.0.0.1");
    //UINT uPort = 1234;

    CString strT;
    strT.Format(_T("\\\\%s:%d"), strIPAddress, uPort);
    SetWindowText(strT);

    return TRUE;  // return TRUE unless you set the focus to a control
    // 异常: OCX 属性页应返回 FALSE
}
#18
a1112345672024-07-26 10:31
// CShowDlg.cpp: 实现文件
//
#include "pch.h"
#include "Server.h"
#include "afxdialogex.h"
#include "CShowDlg.h"
#include "CClientSocket.h"
// CShowDlg 对话框

IMPLEMENT_DYNAMIC(CShowDlg, CDialogEx)

CShowDlg::CShowDlg(CClientSocket* pClientSocket, CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_SHOW_DLG, pParent)
{
    m_pClientSocket = pClientSocket;
}

CShowDlg::~CShowDlg()
{
}

void CShowDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CShowDlg, CDialogEx)
END_MESSAGE_MAP()


// CShowDlg 消息处理程序
#19
a1112345672024-07-26 10:32
麻烦看一看
#20
rjsp2024-07-26 11:03
以下是引用a111234567在2024-7-26 10:32:22的发言:

麻烦看一看

你这么搞无异于大海捞针,况且针还未必在你给的这片海里。
先把 (DWORD)pSocket 改为 (DWORD_PTR)pSocket 试试

#21
a1112345672024-07-26 11:17
回复 20楼 rjsp
这次对了,谢谢了!!
1