程序运行到m_pSocket->Create()就不动了,为什么?

Caps77 2004-07-05 09:10:42
我用vc做了个dll给delphi程序调用,dll中的函数被delphi程序定时调用,函数如下:
if (!AfxSocketInit()){
::AfxMessageBox("socetfail!1");
return FALSE;
}
CSocket *socketme = new CSocket;
if(!(socketme->Create()))
::AfxMessageBox("false!");
else
::AfxMessageBox("true!");
若socket没有初始化,则delphi程序每秒弹出一个false
若socket初始化,则delphi程序第一次弹出true,以后每次socket初始化都成功
但任何消息都不弹出,也就是说,dll在socketme->Create()不动了
但在vc中调用则没有问题!
高手赐招!
...全文
177 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Caps77 2004-07-07
  • 打赏
  • 举报
回复
黔驴技穷!!!1
Caps77 2004-07-07
  • 打赏
  • 举报
回复
刚刚搜索了一下csdn,发现用select函数
int select(
int nfds,
fd_set* readfds,
fd_set* writefds,
fd_set* exceptfds,
const struct timeval* timeout
);
可以捕捉异常,高手能不能给你例子啊!
Caps77 2004-07-07
  • 打赏
  • 举报
回复
真晕!在create()函数上加了个try catch结果create()出现异常,实际上并不是在创建socket时卡住了,而是跳入异常了,在new CSocket后加上
CString str;
str.Format("%d", (int)m_Ctrlsok);
::AfxMessageBox(str);
弹出socket值不为0,那怎么会进入异常啊?
PiggyXP 2004-07-06
  • 打赏
  • 举报
回复
楼主可以试试看在

socketme->Create()

里面加上参数,而不用它默认的参数

socketme->Create(1024,SOCK_STREAM,"本机IP") // 端口、类型、IP

试试看,也许这样可以 ^_^
danielzhu 2004-07-06
  • 打赏
  • 举报
回复
不懂赛
Caps77 2004-07-06
  • 打赏
  • 举报
回复
up哦
PiggyXP 2004-07-06
  • 打赏
  • 举报
回复
也没有什么别的工作了啊,只要初始化能成功的话
findcsdn 2004-07-06
  • 打赏
  • 举报
回复
一定是mfc做了另外的工作。
PiggyXP 2004-07-06
  • 打赏
  • 举报
回复
想不出来还有什么地方可能不对劲了-_-b
Caps77 2004-07-06
  • 打赏
  • 举报
回复
dll里面可以用MFC类啊,只是不能导出mfc类给别的程序调用,注意一下导出参数就行
另外,if (!AfxSocketInit()){
return FALSE;
}
我确保没问题,也没卡住!
唉!我看这个问题没看全代码是解决不了了,再放两天,碰运气了!
nineclock 2004-07-06
  • 打赏
  • 举报
回复
if (!AfxSocketInit()){
::AfxMessageBox("socetfail!1");
return FALSE;
}
是不是重复初始化了?
PiggyXP 2004-07-06
  • 打赏
  • 举报
回复
哦,这样啊,呵呵

那任何休息都不弹出,说不定是卡在AfxSocketInit()里了呢^_^

再说这样的dll里面能用CSocket类末?CSocket不是MFC封装的类嘛
lovingyou 2004-07-06
  • 打赏
  • 举报
回复
if (!AfxSocketInit()){
::AfxMessageBox("socetfail!1");
return FALSE;
}


有可能放的位置不对,应该在DLL加载的时候使用上面的语句(可能多次SocketInit了)
Caps77 2004-07-06
  • 打赏
  • 举报
回复
还是不行:(
Caps77 2004-07-05
  • 打赏
  • 举报
回复
up
Caps77 2004-07-05
  • 打赏
  • 举报
回复
to yhqs540(普通话,语言中的战斗机):
1、什么叫socket库没有初始化?怎么初始化?
2、dll是常规dll,可以在delphi中调用
yhqs540 2004-07-05
  • 打赏
  • 举报
回复
socket库有没有初始化?
还有dll里面用到的类,是不是mfc自己所有
sohou 2004-07-05
  • 打赏
  • 举报
回复
AfxSocketInit
是不是这个函数在DELPHI中没有正常初始化SOCKET哦!
我也不清楚DELPHI是怎么弄的啦,你到DELPHI那边去问问咯!

18,356

社区成员

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

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