Mfc 建立窗口线程
之前一直都是在学习C,但是没用MFC写过东西。所以这个算是MFC的一个处女作把。
今天硬着头皮写了个爆破工具,但是界面(edit控制)在显示的时候一下就被卡住了。
于是到处问人,后来有个不错的朋友帮我解决了,在此谢谢他。
没增加线程之前,老是会出现这样的问题,但是程序并不是死掉了,而是控件显示那儿给卡到了。
让哥们给加了一个线程函数,如下:
void CTestmfcDlg::OnBnClickedButton1()
{
GetDlgItemText(IDC_EDIT2,url);
GetDlgItemText(IDC_EDIT4,Urlpath);
AfxBeginThread(ThreadProc,this); //线程启用
} UINT __cdecl CTestmfcDlg::ThreadProc(LPVOID lpParameter) //线程函数,防止界面卡住
{
CTestmfcDlg *pTestDlg = (CTestmfcDlg*)lpParameter;
wchar_t Passfile[MAX_PATH] = {0};
wchar_t Target[MAX_PATH] = {0};
wchar_t targetpath[MAX_PATH] = {0}; if (lstrlen(pTestDlg->url) == 0)
{
//AfxMessageBox(L"Your Not Enter target url");
pTestDlg->printf_r(L"Please enter the target site.");
} if (lstrlen(pTestDlg->Urlpath) == 0)
{
//AfxMessageBox();
pTestDlg->printf_r(L"Please enter the site path");
} lstrcpy(Target,pTestDlg->url);
lstrcpy(targetpath,pTestDlg->Urlpath);
lstrcpy(Passfile,pTestDlg->FileName);
pTestDlg->Crack(Target,targetpath,Passfile);
return TRUE;
}
在此做个记录,以后碰到这个问题就有办法解决了。
Mfc 建立窗口线程的更多相关文章
- 深入浅出Win32多线程设计之MFC的多线程-线程与消息队列(经典)
1.创建和终止线程 在MFC程序中创建一个线程,宜调用AfxBeginThread函数.该函数因参数不同而具有两种重载版本,分别对应工作者线程和用户接口(UI)线程. 工作者线程 CWinThread ...
- MFC多线程各种线程用法 .
http://blog.csdn.net/qq61394323/article/details/9328301 一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleTh ...
- MFC基础窗口创建,CWinApp、CFrameWnd
1.CWinApp(包括了这个类的导出类):代表了我们的程序.封装了消息循环等. 2.CFrameWnd:代表了程序的框架窗口.封装了窗口的注册.创建.显示.刷新.等等窗口操作. 3.Win32中.一 ...
- MFC 多线程及线程同步
一.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消息机制,通常 ...
- MFC 创建UI线程
对于windows来说,所有的线程都是一样的,但MFC却把线程区分为两种:用户界面(UI)线程和工作者线程.用户界面线程具有消息循环而工作者线程没有.UI线程可以创建窗口并给这些窗口发送消息,工作者线 ...
- SetTimer在无窗口和有窗口线程的使用 . .
今天犯了一个粗心的错误,在无窗口线程中,SetTimer中设置计时器ID,而WM_TIMER消息响应函数中得到的计时器ID却不是之前设置的计时器ID. 对应计时器ID的输出的是一个随机数字. 原来在m ...
- 在C#中子线程如何操作主窗口线程上的控件
在C#中子线程怎样操作主线程中窗口上控件 在C#中,直接在子线程中对窗口上的控件操作是会出现异常,这是因为子线程和运行窗口的线程是不同的空间,因此想要在子线程来操作窗口上的控件.是不可能简单的通过控件 ...
- MFC更换窗口图标
https://blog.csdn.net/deep_kang/article/details/72722692: MFC更换图标,图像默认为MFC,主要步骤有三步. 第一步 找到一张图片(坑点: ...
- 【转】VC 隐藏模块、MFC 改变窗口类名
[转]VC 隐藏模块 void HideDll() { HMODULE hMod = ::GetModuleHandle("MyHook.dll"); PLIST_ENTRY He ...
随机推荐
- joisino's travel
D - joisino's travel Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement T ...
- 【Windows下DLL查找顺序 】
一.写作初衷 在Windows下单个DLL可能存在多个不同的版本,若不特别指定DLL的绝对路径或使用其他手段指定,在应用程序加载DLL时可能会查找到错误的版本,进而引出各种莫名其妙的问题.本文主要考虑 ...
- view {display:block}
view {display:block}
- netty http客户端从web服务器获取消息遇到的HttpChunk问题
有时候,Web服务器生成HTTP Response是无法在Header就确定消息大小的,这时一般来说服务器将不会提供Content-Length的头信息,而采用Chunked编码动态的提供body内容 ...
- postman 编码加密汇总
1.MD5加密 /*加密方式:将 请求头的user-agent内容+请求方式+当前时间+(Base64)请求body中的stacode参数 拼接后得到的字符串进行MD5加密*/ //1.获取reque ...
- 关于“Cannot find any provider supporting AES/ECB/PKCS7Padding”问题的解决方案
出现这个问题的原因是:java自带的是PKCS5Padding填充,不支持PKCS7Padding填充 参考:https://stackoverflow.com/questions/20770072/ ...
- 什么是 XML Schema(转)
什么是 XML Schema? XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD. XML Schema 的作用: 定义可出现在文档中的元素 定义可出现在文档中的属性 定义 ...
- 【转】Python max内置函数详细介绍
#max() array1 = range(10) array2 = range(0, 20, 3) print('max(array1)=', max(array1)) print('max(arr ...
- Android:日常学习笔记(9)———探究持久化技术
Android:日常学习笔记(9)———探究持久化技术 引入持久化技术 什么是持久化技术 持久化技术就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失 ...
- 运维角度浅谈MySQL数据库优化
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...