MFC CSocket编程, error C2065: “IDP_SOCKETS_INIT_FAILED”: 未声明的标识符。各位大神帮帮忙啊,谢谢了

作者&投稿:丘宝 (若有异议请与网页底部的电邮联系)
错误 2 error C2065: “CSocket”: 未声明的标识符 怎么修改。。~

#include

这是明显的交叉编译问题,你在这里include了Sock1Dlg.h,然后再Sock1Dlg.h里面又inlcude了这个头文件。编译器处理总有个先后啊。
修改方法如下:
// Sock1Dlg.h : header file
//

#pragma once
#include "afxwin.h"
//#include "MySocket.h"

class CMySocket;

class CSock1Dlg : public CDialog
{
// Construction
public:
CSock1Dlg(CWnd* pParent = NULL); // standard constructor

// Dialog Data
enum { IDD = IDD_SOCK1_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support


// Implementation
protected:
HICON m_hIcon;

// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CMySocket *m_sConnectSock;
CMySocket *m_sListenSock;
CButton m_ctlConnect;
CString m_strMessage;
CString m_strName;
int m_iPort;
int m_iType;
afx_msg void OnBnClickedBclose();
afx_msg void OnBnClickedBsend();
afx_msg void OnBnClickedConnect();
CListBox m_ctlSend;
CListBox m_ctlRecvd;

afx_msg void OnBnClickedRclient();
public:
void OnClose();
void OnReceive();
void OnAccept();


};

然后在cpp文件里面将对象调用改成指针调用,还有这两个对象在构造函数里面new出来。

你在建立MFC工程的时候没有选用SOCKET选项。。所以他有些资源没有给你加进去。。。

你在资源文件里面的Resource.h里面加一行
#define IDP_SOCKETS_INIT_FAILED 103
应该就可以了(不过我在网上看别人的帖子的时候看到过不是103而是104的我也不知道怎么回事,103是我自己电脑上自动带出来的值)

你好,IDP_SOCKETS_INIT_FAILED是当你的socket程序未初始化的时候需要输出的信息,它在AfxMessageBox函数中,函数中要输出这个字符串,当然要加引号,改成

AfxMessageBox(“IDP_SOCKETS_INIT_FAILED”); 即可。


上饶市17291426597: mfc socket技术是什么 -
柞永美百: mfc主要是实现界面编程,即UI设计的;socket,即套接字,是用来进行网络编程的 mfc里面封装了CSocket类,可用来进行网络应用程序的开发.

上饶市17291426597: 在MFC中的UDP程序怎么编写用CAsyncSocket或者CSocket? -
柞永美百: 呵呵整一个SOCKET盲还一上来就要用封装好的MFC类,哀分少啊,帮你说说吧建立一个新类从CAsyncSocketnbsp;publicnbsp;派生来,叫nbsp;MySock,然后在CXXXDlg的头文件加个变量nbsp;MySocknbsp;m_socket;nbsp;然后nbsp;...

上饶市17291426597: 高分.如何利用Csocket类创建一个网络连接程序 -
柞永美百: 实现方法微软的MFC把复杂的WinSock API函数封装到类里,这使得编写网络应用程序更容易.CAsyncSocket类逐个封装了WinSock API,为高级网络程序员 提供了更加有力而灵活的方法.这个类基于程序员了解网络通讯的假设,目的是为了...

上饶市17291426597: MFC CSocket使用 -
柞永美百: 在创建MFC的工程的时候,有一个Windows Socket的选项,要勾上,否则向导在新建工程的时候是不会加入初始化代码的,手工添加步骤很繁琐,如果程序小,建议重新用向导新建一个工程.、

上饶市17291426597: SOCKET类型和CSOCKET有什么区别? -
柞永美百: CSocket是MFC对socket的封装,而且设置了消息模式,但是因此不会出现阻塞,效率会比较高. 你只能在MFC程序中应用而且不能在线程中对其操作,不然肯定会出现这样那样的错误.这主要和它保存消息接收窗口的句柄有关系. socket 是比较低层的,你可以设置其通信模式,相对比较灵活.可以自己控制.当然也也可以把它设置成和 CSocket形式,全看你怎么选择.

上饶市17291426597: 为何要学习MFC? -
柞永美百: 还有一个领域我们不能忽略,那就是个人软件、小型软件.在猪八戒之类的威客网上软件开发的栏目搜一搜,可以发现大部分的windows程序开发的需求,威客们都是用MFC或Dephi来开发,当62616964757a686964616fe59b9ee7ad...

上饶市17291426597: 我初学者用MFC socket进行有关通信的编程.关于创建套接字,socket()函数和create()功能有什么区别? -
柞永美百: 如果是使用MFC,MFC里应该没有socket这个类,应该是 CSocket CSocket socket();是定义一个CSocket类对象.create()是CSocket 类的函数,要使用类的函数,先构造类对象,比如CSocket socket();然后通过类对象调用里面的函数做进一步的工作,比如调用它的create()函数,如果你C++还可以,应该知道他们之间的关系,这是类对象创建和类对象函数调用的关系,谈不上区别.就比如说大象和大象的腿有何区别,这很不好回答,好好学习C++吧,

上饶市17291426597: MFC中CSocket类里的Receive()怎么实现 自动触发接收数据 -
柞永美百: 使用异步方式,OnReceive()函数是自动接收

上饶市17291426597: MFC中CSocket怎么实现两个客户端的连接? -
柞永美百: 如果都在公网的话,客户端直接在服务器注册IP和端口,其他客户端根据这个直接连接即可.如果两个客户端都在内网,需要打洞.

上饶市17291426597: MFC编写上位机程序,不知道如何设计,望各位大虾指点迷津 -
柞永美百: 网络收发:使用CSocket即可.数据库:引用ADO控件.对话框:做一个EDIT,关联一个CString即可.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网