VC中MFC从哪里开始运行,MFC怎么调试,很急呀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC中MFC从哪里开始运行,MFC怎么调试,很急呀相关的知识,希望对你有一定的参考价值。

Win32程序是从WinMain开始执行的,但是MFC把WinMain给封装了,不会出现在你的代码里面,他已经编译到mfc80.dll了(VS2005)了。

在MFC中的执行顺序是这样的,首先Windows调用WinMain函数,WinMain里面调用AfxWinMain函数,注意你的代码现在来了,AfxWinMain函数调用对应你程序的APP类(这个类是基于CWinApp的,CWinApp又是基于CWinThread的)的InitInstance函数,如果InitInstance返回TRUE,就调用CWinThread的Run函数,这个函数你可以重载,但是一般不重载。在Run函数里面是Windows的消息循环,就是Win API编程里面的那个while循环以及TranslateMessage和DipatchMessage,当然MFC弄得比较复杂,有一个PumpMessage的机制。

当程序收到WM_QUIT消息之后,Run函数返回,紧接着CWinThread::ExitInstance会被调用,如果你重载了ExitInstrance则会调用你的。最后程序结束。

如果InitInstance返回FALSE,那么Run函数就不会执行,直接调用ExitInstance,然后程序结束。

你最早可以调试的地方要么是你App的构造函数,不过一般从InitInstrance开始。追问

OK了 THANK YOU ^-^

参考技术A 在你认为有问题的地方设置断点(F9),然后按F5调试运行。
不用管他的入口在哪里,从入口一步一步走会累死的。。。。。
参考技术B Ctrl+F5,最先启动的相当于main()函数的函数在系统中,一般不用找到,对程序运行没多大影响!追问

Ctrl+F5是全速运行 =_=||

参考技术C 按F5

我想做个vc6.0 MFC的远程控制,好像是用socket做,谁能帮我具体说下从新建开始的步骤啊,谢谢谢谢

参考技术A 1服务器和客户端运行在计算机上的调试方法。您还可以运行在服务器端和客户端,分别在两台机器,分别。
2.127.0.0.1这个地址是一个固定的地址指的是机器,这是一个特殊的地址。当服务器和客户端软件的计算机上运行,你可以将它不需要在路由器中设置的服务器的地址。

3。如果您运行的是服务器和客户端软件,分别在两台机器,你将需要你的代码在您的服务器软件的实际地址(通过右键单击网络属性视图)的IP地址上运行。

这是用C#写的C / S模式只给出在服务器端的例子。

使用系统;

使用System.IO;

使用System.Net;

使用System.Net.Sockets的;

使用System.Text;

/ / C / S客户端/服务器的UDP / TCP

类MyTcpListener

公共静态无效的主要()



的TcpListener服务器= NULL;

试试。

/ /设置的TcpListener端口13000

的Int32端口= 13000;

ip地址查找localaddr = IPAddress.Parse(“127.0.0.1”);

/ * *

**你说的应该就是这段代码?如果你想在同一时间客户端和服务器的代码在一台计算机上运行时,IP

**地址应该被安放的位置,这个地址指的是你的机器的地址。

**如果你想在两台计算机上单独运行,你必须要找到你所运行的服务器端代码,

**,并在那里找到你的IP地址改变了计算机的实际IP地址,如果“202.198.113.5”。请注意,客户端代码可以做同样的。

* /

/ /服务器的TcpListener =新的TcpListener(端口);

服务器=新的TcpListener(查找localaddr,口);

/ /开始。监听

启动server.start客户端的请求();

/ /缓冲区读取数据

字节[]字节=新字节[256];

字符串数据=空;

/ /输入监听循环

而(真)



Console.Write(“正在等待连接...”);。

/ /执行一个阻塞调用,可以接受请求

/ /你也可以使用server.AcceptSocket()这里

TcpClient的客户端= server.AcceptTcpClient();。
>了Console.Writeline(「关连!“);

数据= NULL;

/ /获取用于读取和写入

的NetworkStream流=客户端流对象。 GetStream在();

INT I;。

/ /循环接收所有客户端发送

数据,而((I = stream.Read(字节,0,bytes.Length))!= 0)



/ /翻译字节的数据到一个ASCII字符串。

数据= System.Text.Encoding.ASCII。 GetString引发该异常(字节,0,I);

了Console.Writeline(“接收:0”,数据);

/ /处理客户端数据= data.ToUpper();

byte []的味精= System.Text.Encoding.ASCII.GetBytes(数据);

/ /发送回一个响应。

stream.Write(味精,0,msg.Length);

了Console.Writeline(“已发送:0”,数据);



/ /关机和结束

client.Close连接();





赶上(SocketException五)



了Console.Writeline(“SocketException: 0“,五);





/ /停止侦听新客户

server.Stop();。

了Console.Writeline(“\ nHit回车键继续...”);

Console.Read();


追问

谢谢 ! 我再问一下,c++socket和MFCsocket是一个意思么 因为在下小白要做远程控制。。。做远程控制用的是哪个??

以上是关于VC中MFC从哪里开始运行,MFC怎么调试,很急呀的主要内容,如果未能解决你的问题,请参考以下文章

MFC无法运行的原因?我在MFC中加入了一个CWebBrowser的控件后,运行没有出错,但是点击运行是却没有弹出窗

vc MFC 用AfxBeginThread()启动不了线程

将 AfxGetMainWnd 上的 C 样式系列转换从 VC6/MFC6 转换为在现代 MFC 版本(VC++2008 及更高版本)中运行

我想做个vc6.0 MFC的远程控制,好像是用socket做,谁能帮我具体说下从新建开始的步骤啊,谢谢谢谢

Vc++ mfc 窗口类名如何修改

求助,如何将vc中MFC程序中数据导出到excel表中,如何将excel表中数据再导入到access数据库中?