AfxBeginThread第二个参数传入结构体问题

时间:2021-06-06 11:25:19
AfxBeginThread编译过不了。。。高手们帮帮忙,谢谢!
我定义了个结构体
typedef struct
{
BOOL b_ServerStarted;
BOOL b_AcceptConnections;
BOOL b_ShutDown;
CWinThread* p_ListenThread;
SOCKET sockListen;
HANDLE h_Event;
int n_Port;
}IOCP,* pIOCP;

然后:
BOOL SetupListner()
{
pIOCP iocp=new IOCP();
         。。。若干语句
         。。。若干语句
         iocp->p_ListenThread =AfxBeginThread(ListnerThreadProc
,(LPVOID)&iocp//这里有问题
,THREAD_PRIORITY_NORMAL);
}

UINT ListnerThreadProc(LPVOID pParam)
{
CString msg;
IOCP* pThis = reinterpret_cast<IOCP*>(pParam);
         。。。语句若干
         。。。语句若干
}

编译后的错误。。。
error LNK2001: unresolved external symbol "int __cdecl SetupListner(int)" (?SetupListner@@YAHH@Z)
Debug/WServer.exe : fatal error LNK1120: 1 unresolved externals

4 个解决方案

#1


你看看SetupListner头文件中是怎么定义,是不是跟这个地方定义的不一样

#2


去掉&  

#3


你的编译时链接错误好不好  
SetupListner 这个函数没有实例化

#4


引用 1 楼 skynfly 的回复:
你看看SetupListner头文件中是怎么定义,是不是跟这个地方定义的不一样


多谢,是这里的问题,哎。。。。改了一下函数自己忘了改回来了,我还一直盯牢那个AfxBeginThread(不放,谢谢啦!

#1


你看看SetupListner头文件中是怎么定义,是不是跟这个地方定义的不一样

#2


去掉&  

#3


你的编译时链接错误好不好  
SetupListner 这个函数没有实例化

#4


引用 1 楼 skynfly 的回复:
你看看SetupListner头文件中是怎么定义,是不是跟这个地方定义的不一样


多谢,是这里的问题,哎。。。。改了一下函数自己忘了改回来了,我还一直盯牢那个AfxBeginThread(不放,谢谢啦!