MFC开发的程序该如何写程序流程图 对话框的

MFC开发的程序该如何写程序流程图 对话框的,第1张

我写的是一些简单的程序,流程图是这么写的,以供你参考

1写出每个按键

2 (按键A)-->单击-->是否符合单击条件-->符合-->记录参数值-->判断条件-->执行不同的功能-->记录参数值-->对其他功能的使能-->返回

这个只是其中一条线,完整的应该是个网。

大的程序我就不知道了,你再看看吧。

typedef BOOL (_stdcall ENUMPROCESSES)( //注意这里要指明调用约定为-stdcall

DWORD pProcessIds, //指向进程ID数组链

DWORD cb, //ID数组的大小,用字节计数

DWORD pBytesReturned); //返回的字节

//在psapidll中的函数EnumProcessModules用来枚举进程模块

typedef BOOL (_stdcall ENUMPROCESSMODULES)(

HANDLE hProcess, //进程句柄

HMODULE lphModule, //指向模块句柄数组链

DWORD cb, //模块句柄数组大小,字节计数

LPDWORD lpcbNeeded); //存储所有模块句柄所需的字节数

//在psapidll中的函数GetModuleFileNameEx获得进程模块名

typedef DWORD (_stdcall GETMODULEFILENAMEEX)(

HANDLE hProcess, //进程句柄

HMODULE hModule, //进程句柄

LPTSTR lpFilename, //存放模块全路径名

DWORD nSize //lpFilename缓冲区大小,字符计算

);

void main()

{

HINSTANCE hPsDll = LoadLibrary("PSAPIDLL");

if(NULL == hPsDll)

{

cout<<"Load PSAPIDLL failed!"<<endl;

return;

} ENUMPROCESSES pEnumProcesses = (ENUMPROCESSES)GetProcAddress(hPsDll, "EnumProcesses");

ENUMPROCESSMODULES pEnumProcessModules = (ENUMPROCESSMODULES)GetProcAddress(hPsDll, "EnumProcessModules");

GETMODULEFILENAMEEX pGetModuleFileNameEx = (GETMODULEFILENAMEEX)GetProcAddress(hPsDll, "GetModuleFileNameExA"); DWORD processid[1000];

DWORD needed; pEnumProcesses(processid, sizeof(processid), &needed);

int processcount=needed/sizeof(DWORD);

for (int i=0;i<processcount;i++)

{

//打开进程

HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,

false, processid[i]);

if (hProcess)

{

char path[256] = {0};

HMODULE hModule;

pEnumProcessModules(hProcess, &hModule, sizeof(hModule), &needed);

pGetModuleFileNameEx(hProcess, hModule, path, sizeof(path));

GetShortPathName(path,path,256);

char temp[10] = {0};

itoa(processid[i],temp,10);

printf("%s --- %s\n",path,temp);

}

//else

// printf("Failed!!!\n");

} if(hPsDll)

{

FreeLibrary(hPsDll);

}

}

如果采用了静态链接并且没有任何dependents,不能用严格的逻辑来判断使用了哪种编程库。

一般来说,判断一个程序是否使用MFC,首先看运行库,只有这个可以严格确定。如果没有,那么只能根据经验来分析猜测,用SPY++看到的只能作为参考(因为不同编程环境对控件类型的支持有差异,但多数标准控件和窗口一致)。这个分析,多数是通过编程风格、界面习惯、输入控制等方面入手,因为一个软件不可能完全避免使用开发环境的标准模式,不过这个,需要较多的编程经验来分析了。

另外一个,可以根据exe文件的属性中的版本信息提供参考,也可以根据其它资源、数据文件提供参考,但这些都不是绝对的。

最后,还可以通过exe的二进制数据分析来判断,这个更麻烦,但可以准确判断出编译器,至于是否使用了某种库,不是一定可以判断。

MFC程序的编译、调试,必须在Windows平台的VS/VC环境下,因此你安装一个windows也是必须的。

在iMac下,除了虚拟机和双系统(或者单win系统),貌似没有别的办法。

以上就是关于MFC开发的程序该如何写程序流程图 对话框的全部的内容,包括:MFC开发的程序该如何写程序流程图 对话框的、MFC检测后台进程是否运行、怎么判断一个EXE程序是否由MFC编写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10141393.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存