|
|

楼主 |
发表于 2012-1-10 12:42:35
|
显示全部楼层
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "winsock2.h"
#include "resource.h"
#include "MainDlg.h"
/*
Template designed by RuPeng.com. Please visit http://www.rupeng.com for more information
如鹏网(http://www.rupeng.com)大学生计算机学习社区,提供大量免费视频学习教程,提供个性化一对一学习指导
*/
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
}
return FALSE;
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_OK:
{
SocketTest();
}
break;
default:
break;
}
}
void SocketTest()
{
WSADATA wsaData;
//初始化Socket库
WSAStartup(MAKEWORD(2,0),&wsaData);
//创建一根电线
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
SOCKADDR_IN sa;
sa.sin_family=AF_INET;
//设置电线连接服务器端的端口
sa.sin_port = htons(IPPORT_SMTP);
//123.125.50.135是ping smtp.163.com出来的,后面会讲使用gethostbyname来直接从
//主机名得到ip地址
sa.sin_addr.S_un.S_addr = inet_addr("123.125.50.135");
//为什么不用设置客户端的端口,难道不需要客户端的端口吗?
if(connect(sock,(SOCKADDR *)&sa,sizeof(sa))==SOCKET_ERROR)
{
ShowError();
return;
}
//做事情。把大象放冰箱总共分几步
closesocket(sock);
WSACleanup();
}
void ShowError()
{
TCHAR* lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| //自动分配消息缓冲区
FORMAT_MESSAGE_FROM_SYSTEM, //从系统获取信息
NULL,GetLastError(), //获取错误信息标识
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),//使用系统缺省语言
(LPTSTR)&lpMsgBuf, //消息缓冲区
0,
NULL);
MessageBox(NULL,lpMsgBuf,"",MB_ICONERROR);
}
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
编译完全通过,执行的时候出现8个报错
--------------------Configuration: DC - Win32 Debug--------------------
Linking...
MainDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __stdcall WSACleanup(void)" (__imp_?WSACleanup@@YGHXZ)
MainDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __stdcall closesocket(unsigned int)" (__imp_?closesocket@@YGHI@Z)
MainDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __stdcall connect(unsigned int,struct sockaddr const *,int)" (__imp_?connect@@YGHIPBUsockaddr@@H@Z)
MainDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) unsigned long __stdcall inet_addr(char const *)" (__imp_?inet_addr@@YGKPBD@Z)
MainDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) unsigned short __stdcall htons(unsigned short)" (__imp_?htons@@YGGG@Z)
MainDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) unsigned int __stdcall socket(int,int,int)" (__imp_?socket@@YGIHHH@Z)
MainDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __stdcall WSAStartup(unsigned short,struct WSAData *)" (__imp_?WSAStartup@@YGHGPAUWSAData@@@Z)
Debug/DC.exe : fatal error LNK1120: 7 unresolved externals
Error executing link.exe.
DC.exe - 8 error(s), 0 warning(s)
似乎是链接库的问题,可是我按视频的方法添加的啊,
难道添加的不对,,没接触过,希望大家帮帮忙 |
|