extern "C"__declspec (dllexport) long OpenOnePort_Socket(CWnd* pParentWnd,unsigned char bPortType, int localPort,int serverPort,CString serverIP)
{
if((bPortType == PT_TCPCLIENT) || (bPortType == PT_TCPSERVER))
{
PMySocketTcp = new CMySocketTCP; //class CMySocketTCP : public CWnd PMySocketTcp->Create(_T("STATIC"), "", WS_CHILD,
CRect(0, 0, 2, 2), pParentWnd, 1234);//到这句出错
}
}
我用上述方法不用动态链接库时可以创建PMySocketTcp对象,可是用动态链接库后传进来的pParentWnd就没有句柄了,到Create那行代码就出错,请教怎么在动态链接库中创建控件?因为我要用到窗口的消息传输(WSAAsyncSelect(m_Listen,m_hWnd,WM_SOCKET,FD_ACCEPT);)
{
if((bPortType == PT_TCPCLIENT) || (bPortType == PT_TCPSERVER))
{
PMySocketTcp = new CMySocketTCP; //class CMySocketTCP : public CWnd PMySocketTcp->Create(_T("STATIC"), "", WS_CHILD,
CRect(0, 0, 2, 2), pParentWnd, 1234);//到这句出错
}
}
我用上述方法不用动态链接库时可以创建PMySocketTcp对象,可是用动态链接库后传进来的pParentWnd就没有句柄了,到Create那行代码就出错,请教怎么在动态链接库中创建控件?因为我要用到窗口的消息传输(WSAAsyncSelect(m_Listen,m_hWnd,WM_SOCKET,FD_ACCEPT);)
我用下边语句也不行
PMySocketTcp = new CMySocketTCP;
PMySocketTcp->Create((UINT)3333,pParentWnd);//class CMySocketTCP : public CDialog
你应该单独调试看看,确认有没有句柄,然后在结合WSAAsyncSelect。
以下是别人在dll中创建对话框窗口:你可先试试
dll中创建无模式窗口的过程如下: CMsgDlg* dlg=new CMsgDlg;
dlg-> Create(IDD_DIALOG1);
dlg-> ShowWindow(SW_SHOW); 其中IDD_DIALOG1是你在dll工程的添加的对话框资源。
用动态链接库后传进来的pParentWnd就没有句柄
什么叫没有句柄,难道是NULL?
Program:....
File:afxwin1.inl
Line:22
..............
哪位有在DLL中创建对话框或控件的例子能不能发个?感激涕零!!!