小弟创建了一个基于对话框的工程。
定义
CWinThread *pThreadLisen; //监听线程-->_ListenTcpThread
#define PORT 34567
然后在确定按钮上有一个响应函数定义如下:
void CMyQQDlg::OnButtonConnect() //开始连接
{
// TODO: Add your control notification handler code here
if(m_nSockType==SOCK_TCP)
{ pThreadLisen=::AfxBeginThread(_ListenTcpThread,this); //开始TCP线程
}
}
我的线程函数如下:
//TCP监听线程
UINT _ListenTcpThread(LPVOID lparam)
{
CMyQQDlg *pDlg=(CMyQQDlg *)lparam;
CSocket sockSrvr;
pDlg->m_Potr=PORT;//保存当前使用端口,用于关闭
int createSucceed=sockSrvr.Create(pDlg->m_Potr);
}
可是如下代码在调试没出错,可当运行时却出错;后来单步运行时才知是
int createSucceed=sockSrvr.Create(pDlg->m_Potr);出问题了。为什么。应怎改啊,各位大吓帮忙啊。
定义
CWinThread *pThreadLisen; //监听线程-->_ListenTcpThread
#define PORT 34567
然后在确定按钮上有一个响应函数定义如下:
void CMyQQDlg::OnButtonConnect() //开始连接
{
// TODO: Add your control notification handler code here
if(m_nSockType==SOCK_TCP)
{ pThreadLisen=::AfxBeginThread(_ListenTcpThread,this); //开始TCP线程
}
}
我的线程函数如下:
//TCP监听线程
UINT _ListenTcpThread(LPVOID lparam)
{
CMyQQDlg *pDlg=(CMyQQDlg *)lparam;
CSocket sockSrvr;
pDlg->m_Potr=PORT;//保存当前使用端口,用于关闭
int createSucceed=sockSrvr.Create(pDlg->m_Potr);
}
可是如下代码在调试没出错,可当运行时却出错;后来单步运行时才知是
int createSucceed=sockSrvr.Create(pDlg->m_Potr);出问题了。为什么。应怎改啊,各位大吓帮忙啊。
解决方案 »
- 我在.DEF文件中导出了一个函数,用Depends查看编译后的DLL文件,确看不到导出的函数,怎么回事啊?
- (vcleaner马甲)喜获MVP,散分——3
- 用JPG文件添充对话框背景的代码,每次调用都会增加2M内存? 来者有分!
- 在深圳月入2k 的程序员能活吗
- 对话框中显示时如何设置某一编辑框为当前焦点?
- 怎么获得DATETIMEPICKER控件上时间?
- BCH(15,5)码:
- 怎样关闭所有的对话框?
- 在这儿请教几个问题!
- 别人写的程序用的是ANSI 而我的VS是使用似乎是使用Unicode 编译过不去 有没有什么方法快速转化过来?
- 请教有关256色调色板位图中隐藏数据的具体算法
- vc6 在编译dll的问题
CSocket sockSrvr;
pDlg->m_Potr=PORT;//保存当前使用端口,用于关闭
int createSucceed=sockSrvr.Create(pDlg->m_Potr);
然后通过对话框指针访问CSocket对象进行编程
能具体说明如和用代码实现吗
pThreadLisen=::AfxBeginThread(_ListenTcpThread,this);