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++程序抱怨网络框架的主要内容,如果未能解决你的问题,请参考以下文章

Drogon - 真正现代化的 C++ 网络服务框架

用于网络中大型项目的 Django 或 C++ 网络框架(例如,WT)[关闭]

用于 Visual C++ 的简单面向对象的 2D 图形框架?

网络框架 API

ONVIF协议网络摄像机(IPC)客户端程序开发使用ONVIF框架代码(C++)生成静态库04-->Windows

基于C++(QT框架)设计的网络摄像头项目(支持跨平台运行)