怪事,这个VC项目中竟然需要手工添加标准库
2005-08-03 18:08
351 查看
今天练习Windows网络编程,从书上拷了一段最简单的Windows Socket API测试代码来运行:
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
void main(int argc, char* argv[])
{
WSADATA wsaData;
int Ret;
// Initialize Winsock version 2.2
if ((Ret = WSAStartup(MAKEWORD(2,2), &wsaData)) != 0)
{
// NOTE: Since Winsock failed to load we cannot use
// WSAGetLastError to determine the specific error for
// why it failed. Instead we can rely on the return
// status of WSAStartup.
printf("WSAStartup failed with error %d/n", Ret);
return;
}
// Setup Winsock communication code here
// When your application is finished call WSACleanup
if (WSACleanup() == SOCKET_ERROR)
{
printf("WSACleanup failed with error %d/n", WSAGetLastError());
}
}
编译成功了,链接时却报错,提示_imp__WSAStartup, _imp__WSACleanup, _imp__WSAGetLastError等标识符的定义找不到。 查看VC目录,该程序所需的winsock2.h和WS2_32.LIB文件都在。
后来在VC中把WS2_32.LIB以手工方式添加到项目中才正常通过(打开 Project -> Settings -> Link -> Object/Library Modules,把WS2_32.LIB添加到最后)。
不知其它lib是否都需要加在Project -> Settings -> Link -> Object/Library Modules中。
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
void main(int argc, char* argv[])
{
WSADATA wsaData;
int Ret;
// Initialize Winsock version 2.2
if ((Ret = WSAStartup(MAKEWORD(2,2), &wsaData)) != 0)
{
// NOTE: Since Winsock failed to load we cannot use
// WSAGetLastError to determine the specific error for
// why it failed. Instead we can rely on the return
// status of WSAStartup.
printf("WSAStartup failed with error %d/n", Ret);
return;
}
// Setup Winsock communication code here
// When your application is finished call WSACleanup
if (WSACleanup() == SOCKET_ERROR)
{
printf("WSACleanup failed with error %d/n", WSAGetLastError());
}
}
编译成功了,链接时却报错,提示_imp__WSAStartup, _imp__WSACleanup, _imp__WSAGetLastError等标识符的定义找不到。 查看VC目录,该程序所需的winsock2.h和WS2_32.LIB文件都在。
后来在VC中把WS2_32.LIB以手工方式添加到项目中才正常通过(打开 Project -> Settings -> Link -> Object/Library Modules,把WS2_32.LIB添加到最后)。
不知其它lib是否都需要加在Project -> Settings -> Link -> Object/Library Modules中。
相关文章推荐
- 【Unity3d】如何解决在开发中添加了新场景后,需要手工维护BuildSettings中场景列表的问题
- 在VC++项目中为MDI主框架窗口添加位图
- VC 最爱问的问题:你这个创业项目,如果腾讯跟进了,而且几乎是产品上完全复制,你会怎么办?
- 项目总结——传说中的反射竟然是这个样子
- 项目总结——传说中的反射竟然是这个样子
- Cocos2d-x 避免手工输入项目需要编译的cpp文件到Android.mk里
- qt添加dll时,为什么总是需要添加QtGuid4.dll,但是这个dll有 140Mb大
- javaWeb项目添加json支持需要的jar文件
- 老项目运行在Eclipse,需要添加tomcat运行,而不是maven中引入tomcat插件,将此项目引入IDEA中需要注意的问题
- 在VC下手工为对话框添加自定义消息
- 智能设备项目: 手工添加所需控件的简单示例
- vc++ win32项目添加文本编辑框、静态文本、按钮、Richedit等控件
- VS2010 VC++ 项目添加引用 出现 Internal CPS Error问题原因及解决办法
- mark一下这个项目做完以后需要整理的东西
- Eclipse项目中经常需要添加的一些配置文件以及设置
- VC 最爱问的问题:你这个创业项目,如果腾讯跟进了,而且几乎是产品上完全复制,你会怎么办?
- 在某些项目进行开发的时候,需要提升应用程序本身的权限,这个是很容易的。
- VC++ 项目添加库引用
- 在已经建好的工程项目中需要添加BCG功能!
- c#.net无法直接启动带有“类库输出类型”的项目 若要调试此项目,请在此解决方案中添加一个引用库项目的可执行项目。将这个可执行项目设置为启动项-----解决办法