XP下QueueUserWorkItem失败!!! 本帖最后由 VisualEleven 于 2011-08-07 20:25:33 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能需要更新SDK包,或者使用高版本的VS编译器~ 对了,我还有个问题:#pragma once#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")#include "stdafx.h"#include <afxtempl.h> #ifndef __AFXWIN_H__#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"#endif#if defined( _WINDLL)#define SERVER_API __declspec(dllexport) #else #define SERVER_API __declspec(dllimport) #endif#define MAX_BUF_SIZE 4096#define WM_SHOW_MSG WM_USER+100// CDvTcpServerApp// 有关此类实现的信息,请参阅 DvTcpServer.cpp//typedef void (__stdcall *CBF_NotifyANewConnection)(int cID,int sID,int badd, char* clientip, char* url,int disconnect); typedef void (__stdcall *pDataBack)(int cid,int idatatype,char* pdata, int ilen,int iUserData);typedef void (__stdcall *pMsgBack)(int cid,int opt,int param1,int param2,int param3,int param4,char *pdata,int len,int iusrdata);enum IO_TYPE { IO_TYPE_ACCEPT, IO_TYPE_READ, IO_TYPE_WRITE, IO_TYPE_UNKNOWN};class SERVER_API COverLappedEx {public: OVERLAPPED m_OLap; IO_TYPE m_IOType; char m_szBuf[MAX_BUF_SIZE]; COverLappedEx(IO_TYPE ioType) { ZeroMemory(&m_OLap, sizeof(OVERLAPPED)); m_IOType = ioType; ZeroMemory(m_szBuf, MAX_BUF_SIZE); }};class SERVER_API CPerSocketData {public: SOCKET m_Socket; SOCKET m_AccSocket; CPerSocketData() { m_Socket = INVALID_SOCKET; m_AccSocket = INVALID_SOCKET; }};class SERVER_API CIOCPServer{public: CIOCPServer(void); ~CIOCPServer(void);public: void SetLastErrorMsg(CString strErrorMsg); CString GetLastErrorMsg(); BOOL WinSockInit(); void AssociateWnd(CWnd *pWnd); BOOL StartServer(UINT uListenPort); BOOL PostAccept(CPerSocketData *pSockData); BOOL PostRecv(CPerSocketData *pSockData); BOOL PostSend(LPCTSTR lpszText, DWORD dwSizeInBytes); static DWORD WINAPI ThreadPoolProc(LPVOID lpParam); CPerSocketData *AssignSockToCompletionPort(SOCKET tSocket); void StopServer();private: LONG m_ThreadNums; CWnd *m_pWnd; CString m_strErrorMsg; SOCKET m_ListenSocket; HANDLE m_hCompletionPort; CList <CPerSocketData *, CPerSocketData *> m_ArrSocketData; CList <COverLappedEx *, COverLappedEx *> m_ArrOverLapEx;};class SERVER_API COverLappedEx!!!导出类我想调用标准约定老是搞不定要怎么弄啊 函数指针指向的函数是否可以是别的类中的非静态成员的函数呢? 如何将超过10位数的字符串数字转换为整型? 求助!高分请教 字符处理及在VC.Net程序中实现的问题 如何创建"真正"的模式对话框,除非处理它或关机,否则它永远是当前窗口? 请问如何使用CFontDialog,--在线等 有关DropList控件的使用,在线等待... 有谁知道关于内存管理的软件什么原理呀,帮帮忙呀 strchr strcat??(得分好简单的!!)(10) 如何实现文件的的删除和拷贝 高手表现的好机会:在给定一个URL的情况下...(只要留言者均有分,最少不少于5分)。 vc 串口发送数据 几个蛋疼的头文件
#pragma once
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
#include "stdafx.h"
#include <afxtempl.h>
#ifndef __AFXWIN_H__
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
#endif#if defined( _WINDLL)
#define SERVER_API __declspec(dllexport)
#else
#define SERVER_API __declspec(dllimport)
#endif
#define MAX_BUF_SIZE 4096
#define WM_SHOW_MSG WM_USER+100// CDvTcpServerApp
// 有关此类实现的信息,请参阅 DvTcpServer.cpp
//typedef void (__stdcall *CBF_NotifyANewConnection)(int cID,int sID,int badd, char* clientip, char* url,int disconnect);
typedef void (__stdcall *pDataBack)(int cid,int idatatype,char* pdata, int ilen,int iUserData);
typedef void (__stdcall *pMsgBack)(int cid,int opt,int param1,int param2,int param3,int param4,char *pdata,int len,int iusrdata);
enum IO_TYPE {
IO_TYPE_ACCEPT,
IO_TYPE_READ,
IO_TYPE_WRITE,
IO_TYPE_UNKNOWN
};class SERVER_API COverLappedEx {
public:
OVERLAPPED m_OLap;
IO_TYPE m_IOType;
char m_szBuf[MAX_BUF_SIZE];
COverLappedEx(IO_TYPE ioType) {
ZeroMemory(&m_OLap, sizeof(OVERLAPPED));
m_IOType = ioType;
ZeroMemory(m_szBuf, MAX_BUF_SIZE);
}
};class SERVER_API CPerSocketData {
public:
SOCKET m_Socket;
SOCKET m_AccSocket;
CPerSocketData() {
m_Socket = INVALID_SOCKET;
m_AccSocket = INVALID_SOCKET;
}
};
class SERVER_API CIOCPServer
{
public:
CIOCPServer(void);
~CIOCPServer(void);
public:
void SetLastErrorMsg(CString strErrorMsg);
CString GetLastErrorMsg();
BOOL WinSockInit();
void AssociateWnd(CWnd *pWnd);
BOOL StartServer(UINT uListenPort);
BOOL PostAccept(CPerSocketData *pSockData);
BOOL PostRecv(CPerSocketData *pSockData);
BOOL PostSend(LPCTSTR lpszText, DWORD dwSizeInBytes);
static DWORD WINAPI ThreadPoolProc(LPVOID lpParam);
CPerSocketData *AssignSockToCompletionPort(SOCKET tSocket);
void StopServer();
private:
LONG m_ThreadNums;
CWnd *m_pWnd;
CString m_strErrorMsg;
SOCKET m_ListenSocket;
HANDLE m_hCompletionPort;
CList <CPerSocketData *, CPerSocketData *> m_ArrSocketData;
CList <COverLappedEx *, COverLappedEx *> m_ArrOverLapEx;
};class SERVER_API COverLappedEx!!!
导出类我想调用标准约定老是搞不定要怎么弄啊