Winsock编程的一个错误
来源:互联网 发布:c4d mac 百度云 编辑:程序博客网 时间:2024/04/29 19:06
今天上午的错误终于搞明白了,原来我在建立win32 控制台工程的时候 选用了visual2005的默认设置,这样就使得项目的附加选项中选择了【预编译头】选项,改选成【空项目】选项后上午的问题就解决了,但是这两者之间的区别偶还没有搞明白,等明白了再和大家分享吧,呵呵。现在先解决问题要紧。
不过接下来又遇到了新的问题,我的工程中用到了一些winsock函数,例如:
WSAStartup
WSACleanup
gethostname
gethostbyname
等等,这些函数都在头文件winsock2.h头文件中被定义了,我在引用这些函数的时候已经加入了
#include "winsock2.h"
语句,竟然还是提示错误,错误信息如下:
正在编译资源清单...
正在链接...
testMain.obj : error LNK2019: 无法解析的外部符号 __imp__WSAStartup@8,该符号在函数 _main 中被引用
GeneralFun.obj : error LNK2019: 无法解析的外部符号 __imp__ntohl@4,该符号在函数 "unsigned long __cdecl GetID(void)" (?GetID@@YAKXZ) 中被引用
GeneralFun.obj : error LNK2019: 无法解析的外部符号 __imp__gethostbyname@4,该符号在函数 "unsigned long __cdecl GetID(void)" (?GetID@@YAKXZ) 中被引用
GeneralFun.obj : error LNK2019: 无法解析的外部符号 __imp__gethostname@8,该符号在函数 "unsigned long __cdecl GetID(void)" (?GetID@@YAKXZ) 中被引用
D:/vs2005/testproblem/Debug/testproblem.exe : fatal error LNK1120: 4 个无法解析的外部命令
最初感觉匪夷所思,后来上网一问,原来需要一个动态链接库文件(lib)文件,文件名为ws2_32.lib。
为了把这个ws2_32.lib加载到项目当中,有两种方法。
第一种:
在菜单 project ->settings -> link -> object/library modules 下面输入ws2_32.lib 然后确定即可
第二种:
在头文件中加入语句#pragma comment( lib, "ws2_32.lib" ) 来显式加载。 即:
#include <winsock2.h>
#pragma comment(lib, "WS2_32")
- Winsock编程的一个错误
- Winsock 重复定义的错误
- winsock 错误多的真爽啊
- Winsock编程中常见错误解释
- (转载) socket:10038错误{winSock的一个bug:当closesocket多次错误使用时会导致问题}
- WINSOCK 编程的简单过程
- WINSOCK API的Socket编程
- WINSOCK API的Socket编程
- winsock一个简单的例子
- 一个简单的Winsock例子
- 为初学者写的Winsock编程--一个简单的TCP服务器
- windows网络编程Winsock(二)一个简单的阻塞服务器
- winsock编程
- WinSock编程
- Winsock编程
- Winsock编程
- winsock编程
- Winsock编程
- JS+DIV实现标签页
- 关于bool 与 Boolean 的区别以及string 和 String
- SQL表的导入导出插入
- 想看下指针
- MMPP--物料替换
- Winsock编程的一个错误
- 动态转换伪静态的页面
- 在spring中使用jms
- 用static声明的函数和变量小结
- 彻底明白Java的IO系统
- jms基础
- 中国人, 请为微软出一个反盗版的高招
- C#心得
- 百度之星程序设计大赛题目