编译顺序

sandy1983 2009-07-26 05:50:05
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
ChatSocketServer.cpp
ChatSocketServerDlg.cpp
ServerChatSocket.cpp
ListenSocket.cpp
Generating Code...
Linking...

ChatSocketServer.exe - 0 error(s), 0 warning(s)

这是编译程序的服务器端的顺序,运行程序后提示:“创建套接字失败”。从编译顺序上看,失败是显然的,因为是先编译的
ChatSocketServerDlg.cpp这个文件,而这个文件里有

if(m_ListenSocket.Create(1500))
{
m_ListenSocket.Listen();
m_ListenSocket.m_pParentWnd=this;
}
else
AfxMessageBox("建立套接字失败!");

这段代码。

此时我的ListenSocket.cpp根本就没开始编译,产生错误是肯定的,不知分析得对不对?此问题该如何解决呢?谢谢
...全文
59 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2009-07-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sandy1983 的回复:]
谢谢,经过你的提点,问题解决了。这个忘记加了

if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}

顺便问一句,这段代码中是不是说明AfxSocketInit()函数被执行了。为了写法的美观才这么写,冗余的写法可以是:

BOOL i;
i=AfxSocketInit();

if (!i)
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}

是否?



[/Quote]
恩,直接把返回值作为if判断,代码美观
sandy1983 2009-07-26
  • 打赏
  • 举报
回复
哦,搞定明白了. 我2楼的问题谁能帮忙解答下
jufengaihaozhe 2009-07-26
  • 打赏
  • 举报
回复
应该还是你程序编写问题,你肯定是把某个函数与其他函数的执行顺序弄错啦~在看看把
sandy1983 2009-07-26
  • 打赏
  • 举报
回复
晕,刚刚server端虽然问题解决了,可Client端去连接,显示“连接失败”
sandy1983 2009-07-26
  • 打赏
  • 举报
回复
谢谢,经过你的提点,问题解决了。这个忘记加了

if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}

顺便问一句,这段代码中是不是说明AfxSocketInit()函数被执行了。为了写法的美观才这么写,冗余的写法可以是:

BOOL i;
i=AfxSocketInit();

if (!i)
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}

是否?


oyljerry 2009-07-26
  • 打赏
  • 举报
回复
这个是编译,你的出错时运行时出错,跟ListenSocket.cpp 编译没关系
显示的编译顺序只不过显示给你看的,编译器内部会处理好你的类依赖关系

你的错误时,你的socket是否有初始化的代码

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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