很奇怪的问题:为什么调用CSocket::Create会停在那呢?

Kaile 2000-07-24 10:25:00
我的NT Service 程序中调用CSocket's Create()既不正确返回也不错误返回,而是停在那,然后NT 服务报告"进程异常终止"
if (!AfxSocketInit())
{
AfxMessageBox("初始化端口失败");
return ;
}

CSocket *sock;
sock= new CSocket();
sock->Create(m_nRemotePort,SOCK_STREAM);

也许您的一句话会解决困扰我一星期的问题,请尽快参与吧

...全文
170 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ALLEIN 2000-07-31
  • 打赏
  • 举报
回复
关注
Jackzhu 2000-07-24
  • 打赏
  • 举报
回复
CSocket会自动找一个父窗口,如果没有他会自己创建一个。是否你当前的窗口有问题。
Jackzhu 2000-07-24
  • 打赏
  • 举报
回复
这个窗口是ms封装socket时进行消息传递的目标,如果用CSocket,肯定会有一个窗口,建议你用SOCKET句柄和socket api进行通信,这样该不会有问题。
UserReg 2000-07-24
  • 打赏
  • 举报
回复
你在生成工程的时候没有选复选框Windows Sockets支持吧?
你在你的工程的**App.cpp文件的InitInstance()函数的一开始加入下面一句话:
如:
BOOL CSocketApp::InitInstance()
{
//下面几句是你要加的
if (!AfxSocketInit())//主要是这一句拉
{
// AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
Kaile 2000-07-24
  • 打赏
  • 举报
回复
难道没有窗口就不能用吗?(我的NT Service没有窗口)
难道非要加一个窗口吗?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧