求助,MFC问题。
我想利用CSocket写一个MFC的通信小程序,在VS中添加一个派生于CScoket的类CMY_socket,然后在CMFC_SOCKETDlg对话款类中添加CMY_socket的对象server,再把对话框类CMFC_SOCKETDlg的一个对象dlg添加到我的CMY_socket类中,两边都加上了相应的头文件。但却报这样的错!
1>e:\vs2010\my_socket\my_socket\my_socketdlg.h(13): error C2146: 语法错误: 缺少“;”(在标识符“server”的前面)
1>e:\vs2010\my_socket\my_socket\my_socketdlg.h(13): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\vs2010\my_socket\my_socket\my_socketdlg.h(13): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1> MY_SOCKETDlg.cpp
1>e:\vs2010\my_socket\my_socket\socket_class.h(10): error C2146: 语法错误: 缺少“;”(在标识符“dlg”的前面)
1>e:\vs2010\my_socket\my_socket\socket_class.h(10): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\vs2010\my_socket\my_socket\socket_class.h(10): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1> MY_SOCKET.cpp
1>e:\vs2010\my_socket\my_socket\socket_class.h(10): error C2146: 语法错误: 缺少“;”(在标识符“dlg”的前面)
1>e:\vs2010\my_socket\my_socket\socket_class.h(10): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\vs2010\my_socket\my_socket\socket_class.h(10): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
在VS6中也是一样的问题,谷歌了一下,以为是类的超前使用,就加上了两个类的声明,但是没用啊!一样出错。不知道是不是头文件的包含问题???大家帮帮忙啊。先谢谢了。
[最优解释]
.h仅是映射引入,没有实际引入。
[其他解释]
你整个类的定义是个循环:CMY_socket中定义了CMFC_SOCKETDlg的一个对象dlg,CMFC_SOCKETDlg对话款类中添加CMY_socket的对象server,这样,头文件的包含不会有问题么????
[其他解释]
include 后面忘了分号?
[其他解释]
是否确实其他头文件,比如socket相关的,已经对应的lib。
两个类的头文件最好不要相互包含。
[其他解释]
头文件不要相互包含。。。。
[其他解释]
规规矩矩的include "xxx.h"啊
[其他解释]
在提示的第13行之前找找,忘了分号,或者使用了中文的分号、引号等
[其他解释]
大哥,不是这个问题,都看了几十遍了。大家帮帮忙啊。
[其他解释]
高手,那应该怎样做啊???
[其他解释]
真的是头文件包含的问题吗?我也觉得怪怪的。
[其他解释]
把.h文件拷贝到你当前项目目录。
[其他解释]
高手啊,不是很明白呀?“当前项目目录”是哪里?我就打开一个项目呀。我的项目里面有相应的头文件啊。还请您不吝啬赐教,谢谢。
[其他解释]
先排除循环引入的问题,之后再把共有内容放在自己新建的.h之中。看看能不能解决。
[其他解释]
我也不知道是不是循环引入的问题?其实我是想关联控件,把变量放在对话框类中,然后派生CStroke类里重写几个虚函数,例如:OnAccept(),OnClose();然后然后再通过这个对话框对象,让这个对话框做一些信息的显示。因为自己也是菜鸟,想说用CStroke和CAsyncSocket练习一下,没想到这第一步就出了问题。要不就用Windows API实现咯。
[其他解释]
这整个就是一个递归~~~~~~为什么要这样实现?????
[其他解释]
第一次写嘛!思路错了。谢谢。