Visual C++程序抱怨网络框架
Posted
技术标签:
【中文标题】Visual C++程序抱怨网络框架【英文标题】:Visual C++ program complains about net framework 【发布时间】:2013-03-22 11:37:41 【问题描述】:我在 Visual C++ 2010 中编写了一个简单的客户端程序,它使用 winsock 连接到客户端。当我尝试在另一台计算机上运行此程序时,它抱怨缺少 Net Framework。 我想知道为什么会这样?我的代码中有什么需要网络框架?
错误信息:
应用程序,您必须先安装以下版本之一 .NET Framework v4.0...等
这是我的代码
#pragma once
#pragma comment(lib, "Ws2_32.lib")
#include "stdafx.h"
#include <sdkddkver.h>
#include <WinSock2.h>
#include <Windows.h>
#include <iostream>
#include <string>
#include <time.h>
#include <cstring>
#include <sstream>
#define SCK_VERSION2 0x020
using namespace std;
void main()
long Successful;
WSAData WinSockData;
WORD DLLVersion;
DLLVersion = MAKEWORD(2,1);
Successful = WSAStartup(DLLVersion, &WinSockData);
int sd,rcv,i,myint = 1;
hostent *host = gethostbyname("localhost");
char * myhostadd = inet_ntoa (*((struct in_addr *) host->h_addr_list[0]));
string memzi2,memzi,Converter;
char Message[200],tell[200] = "haa";
SOCKADDR_IN Address;
SOCKET sock;
sock = socket(AF_INET,SOCK_STREAM,NULL);
Address.sin_addr.s_addr = inet_addr(myhostadd);
Address.sin_family = AF_INET;
Address.sin_port = htons(7177);
cout << "Connecting to server...";
Successful = connect(sock, (SOCKADDR*)&Address, sizeof(Address));
u_long iMode=1;
ioctlsocket(sock,FIONBIO,&iMode);
if (Successful == 0)
cout << "Connected. "<< endl;
for (;;++i)
std::stringstream convert2;
convert2 << myint;
memzi2 = convert2.str();
std::cout << "Client: " << memzi2 << std::endl;
const char * c = memzi2.c_str();
sd = send(sock, c, sizeof(tell), NULL);
cout << "Server: ";
rcv = recv(sock,Message,sizeof(Message),NULL);
Converter = Message;
cout << Converter << endl;
std::stringstream convert1(Converter);
convert1 >> myint;
if (myint > 5000)
myint = 1;
++myint;
closesocket(sock);
else cout << "Failed." << endl;
cout << "\n\n\t";
system("pause");
exit(1);
提前致谢!
【问题讨论】:
你的代码有很多问题。仅举几例:您永远循环,发送的数据多于实际数据,您从不检查错误。 是的,我知道。我应该调查一下。但我是专门询问 .net 框架请求的。 您使用什么样的 VisualStudio 项目?希望是 Win32 控制台应用程序而不是 CLR 控制台应用程序? 是的,它是一个 clr 控制台呵呵。将其更改为 Win32 控制台,它可以工作。谢谢! 【参考方案1】:可能是一个简单的原因,它将使用 C++ CLI,即公共语言运行时。转到项目属性并修复它,它不会再显示了。
【讨论】:
以上是关于Visual C++程序抱怨网络框架的主要内容,如果未能解决你的问题,请参考以下文章
用于网络中大型项目的 Django 或 C++ 网络框架(例如,WT)[关闭]
用于 Visual C++ 的简单面向对象的 2D 图形框架?