- 博客(0)
- 资源 (4)
- 收藏
- 关注
DirectX9.0 入门手册
我写这个指南的主要目的是为了学习。我希望自己可以通过写这个指南更快地学会DirectX。同时,我也希望为其他想学习的同伴提供一些学习资料。在编程方面,我并不是很强的人,再加上人总是会犯错的,如果我这些文字给贻笑大方的话,我接受大家对我提出有建设性的批评,如果你有更好的想法要和我交流,可以联系我:fowenler@126.com<br>
2007-10-10
高性能并发IOCP 网络编程
/////////////////////////////////////////////////////////////////
// 初始化Socket
bool CIOCPModel::_InitializeListenSocket()
{
// AcceptEx 和 GetAcceptExSockaddrs 的GUID,用于导出函数指针
GUID GuidAcceptEx = WSAID_ACCEPTEX;
GUID GuidGetAcceptExSockAddrs = WSAID_GETACCEPTEXSOCKADDRS;
// 服务器地址信息,用于绑定Socket
struct sockaddr_in ServerAddress;
// 生成用于监听的Socket的信息
m_pListenContext = new PER_SOCKET_CONTEXT;
// 需要使用重叠IO,必须得使用WSASocket来建立Socket,才可以支持重叠IO操作
m_pListenContext->m_Socket = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, WSA_FLAG_OVERLAPPED);
if (INVALID_SOCKET == m_pListenContext->m_Socket)
{
this->_ShowMessage("初始化Socket失败,错误代码: %d.\n", WSAGetLastError());
return false;
}
else
{
TRACE("WSASocket() 完成.\n");
}
// 将Listen Socket绑定至完成端口中
if( NULL== CreateIoCompletionPort( (HANDLE)m_pListenContext->m_Socket, m_hIOCompletionPort,(DWORD)m_pListenContext, 0))
{
this->_ShowMessage("绑定 Listen Socket至完成端口失败!错误代码: %d/n", WSAGetLastError());
RELEASE_SOCKET( m_pListenContext->m_Socket );
return false;
}
else
{
TRACE("Listen Socket绑定完成端口 完成.\n");
}
// 填充地址信息
ZeroMemory((char *)&ServerAddress, sizeof(ServerAddress));
ServerAddress.sin_family = AF_INET;
// 这里可以绑定任何可用的IP地址,或者绑定一个指定的IP地址
//ServerAddress.sin_addr.s_addr = htonl(INADDR_ANY);
ServerAddress.sin_addr.s_addr = inet_addr(m_strIP.GetString());
ServerAddress.sin_port = htons(m_nPort);
// 绑定地址和端口
if (SOCKET_ERROR == bind(m_pListenContext->m_Socket, (struct sockaddr *) &ServerAddress, sizeof(ServerAddress)))
{
this->_ShowMessage("bind()函数执行错误.\n");
return false;
}
else
{
TRACE("bind() 完成.\n");
}
// 开始进行监听
if (SOCKET_ERROR == listen(m_pListenContext->m_Socket,SOMAXCONN))
{
this->_ShowMessage("Listen()函数执行出现错误.\n");
return false;
}
else
{
TRACE("Listen() 完成.\n");
}
// 使用AcceptEx函数,因为这个是属于WinSock2规范之外的微软另外提供的扩展函数
// 所以需要额外获取一下函数的指针,
// 获取AcceptEx函数指针
DWORD dwBytes = 0;
if(SOCKET_ERROR == WSAIoctl
2016-01-27
DirectX开发中文手册
所有的文档都是老王的Word文档转过来的,原文大概有10万字,你要是能体会老王在翻译过程中的辛苦,我也就很心满意足了。原来Word中的格式信息到了这里就不对了,总是要逐段的改,其中的麻烦你要是想知道的话,有机会我一定演示给你看。<br> 目前,手册中只有DirectDraw部分,它的内容都是从DirectX 5.0 SDK 中翻译过来的,有些地方加入了我自己的理解。如果你觉得有不合适的地方,请告诉老王(waa@126.com),愿意与你一起修改。<br> 因为这些文档有时候会做一些修改和完善,所以原本不准备做下载的,但是又觉得这样岂不是太耽误大家的上网时间了,于心不忍,还是加了进来。顺便老王卖瓜说一句,这可能是你见过的最全的、链接最完整的DXSDK翻译作品了。<br>
2007-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅