eTerm组件
功能:与航信通信,将用户的命令发送到航信,接收航信返回的数据。程序一:
名称:eTermShell
功能:接收主进程传送来的WM_COPYDATA消息,将传送来的数据中的命令,使用eTerm组件发送到航信,
接收航信返回的数据(还是使用eTerm),使用SendMessage发送WM_COPYDATA消息到主进程,
将航信返回的数据传送到其他进程。程序二:
名称:eTermSrVr
功能:接收客户端的Socket连接,将客户端的eTerm命令通过WM_COPYDATA发送到子进程,接收子进程传回的数据(还是通过接收WM_COPYDATA),传回客户端(通过Socket)。
启动过程:程序启动的时候会启动几个子进程(eTermShell).问题:启动eTermSrVr, 再启动一个客户端,客户端发送几个eTerm命令(比如,查询航班的命令),这时候,打开一个文件夹(比如打开“我的文档”,或者什么其他的文件夹),eTermSrVr马上宕掉。
错误不确定,违规访问,0x0000005. Privileged Instruction ......打开IE也会使程序宕掉。
打开其他程序没问题,比如打开Word notepad什么的,没关系。
没有发送eTerm命令也没关系,打开文件夹,程序正常运行。当打开一个文件夹会发生什么?打开一个文件夹的时候,他会向其他进程发送什么消息吗?
怎么会违规访问呢?
功能:与航信通信,将用户的命令发送到航信,接收航信返回的数据。程序一:
名称:eTermShell
功能:接收主进程传送来的WM_COPYDATA消息,将传送来的数据中的命令,使用eTerm组件发送到航信,
接收航信返回的数据(还是使用eTerm),使用SendMessage发送WM_COPYDATA消息到主进程,
将航信返回的数据传送到其他进程。程序二:
名称:eTermSrVr
功能:接收客户端的Socket连接,将客户端的eTerm命令通过WM_COPYDATA发送到子进程,接收子进程传回的数据(还是通过接收WM_COPYDATA),传回客户端(通过Socket)。
启动过程:程序启动的时候会启动几个子进程(eTermShell).问题:启动eTermSrVr, 再启动一个客户端,客户端发送几个eTerm命令(比如,查询航班的命令),这时候,打开一个文件夹(比如打开“我的文档”,或者什么其他的文件夹),eTermSrVr马上宕掉。
错误不确定,违规访问,0x0000005. Privileged Instruction ......打开IE也会使程序宕掉。
打开其他程序没问题,比如打开Word notepad什么的,没关系。
没有发送eTerm命令也没关系,打开文件夹,程序正常运行。当打开一个文件夹会发生什么?打开一个文件夹的时候,他会向其他进程发送什么消息吗?
怎么会违规访问呢?
为什么不直接使用 Socket 进行进程之间的通讯呢?
我怀疑是在调用WIN32 API的时候,我没有将API函数放在 catch 块中,抓异常。
这个程序要求速度。
0102ff18()
890476ff()
0102FF01 int 3
0102FF02 int 3
0102FF03 int 3
0102FF04 loope 0102FF08
0102FF06 add al,0
==> 0102FF08 hlt
0102FF09 add al,byte ptr [eax+eax]
0102FF0C rol al,1
0102FF0E add byte ptr [eax],al
0102FF10 add byte ptr [eax],alhlt 是停机指令吧! 怎么会有停机指令呢? 难道是病毒?
不明白他为什么会使一个程序死掉呢?
我用的是WinXP 把3721删除了,还是没用。
USER32! 77d19100()
CWinThread::PumpMessage() line 814 + 19 bytes
CWinThread::Run() line 480 + 11 bytes
CWinApp::Run() line 400
AfxWinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f32, int 1) line 49 + 11 bytes
WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f32, int 1) line 30
WinMainCRTStartup() line 330 + 54 bytes
KERNEL32! 7c816d4f()
if (!::GetMessage(&m_msgCur, NULL, NULL, NULL))GetMessage 的问题