首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
VC/MFC
进程/线程/DLL
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
_beginThread新建的线程调用MessageBox没有任何反应为什么?
加为好友
发送私信
在线聊天
udvlin
该用户很懒,没有填写自己的个人昵称
等级:
可用分等级:
贫农
总技术分:
0
总技术分排名:
318040
结帖率:
0.00%
发表于:
2008-08-23 15:02:33
楼主
#include <iostream>
#include <string>
#include <process.h>
#include <windows.h>
using namespace std;
void _cdecl thr(void * param);
void main() {
ULONG hThread = _beginthread(thr,1024,NULL);
const char * str = "hello world!";
string str1(str);
int a[] = {'a',2,3,4,4};
cout < < str1;
cout < < *(a+1);
cin>>str1;
}
void thr(void * param)
{
cout < <"i'm new thread!";
MessageBox(NULL,(LPCSTR) TEXT("ÄãºÃÊÀ½ç!"),(LPCSTR) TEXT("ÐÂÏ̴߳°¿Ú!!"),MB_OK);
}
如果吧MessageBox放到main中是正常的!
问题点数:
5
回复次数:
17
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
nevergone
做最好的自己
等级:
可用分等级:
富农
总技术分:
1192
总技术分排名:
17061
发表于:
2008-08-23 18:41:25
1
楼 得分:
0
在我机器上有messagebox
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
superdiablo
天外有天
等级:
可用分等级:
富农
总技术分:
2247
总技术分排名:
9552
发表于:
2008-08-23 20:20:46
2
楼 得分:
0
不要在非用户界面线程中显示对话框。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
uoyevoli
爱什么呢?
等级:
可用分等级:
贫农
总技术分:
2624
总技术分排名:
8176
发表于:
2008-08-23 21:15:33
3
楼 得分:
0
同意楼上的,最好只有一个线程操作界面
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
udvlin
该用户很懒,没有填写自己的个人昵称
等级:
可用分等级:
贫农
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-25 13:19:02
4
楼 得分:
0
请教2楼的,为什么不能在非用户界面线程中显示对话框?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
bukkake
唔,满脸都是呢
等级:
可用分等级:
中农
总技术分:
200
总技术分排名:
60144
发表于:
2008-08-25 17:55:35
5
楼 得分:
0
Code Generation调成多线程了么?
实际的工作中如果确实需要显示对话框,可以想UI线程发消息,让UI线程显示
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
missdeer
思鹿——好怀念啊,多少年前的昵称了
等级:
可用分等级:
富农
总技术分:
3499
总技术分排名:
6003
发表于:
2008-08-25 20:56:36
6
楼 得分:
0
引用 4 楼 udvlin 的回复:
请教2楼的,为什么不能在非用户界面线程中显示对话框?
不好好看教科书哈
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chzhk007
Kenneth
等级:
可用分等级:
中农
总技术分:
156
总技术分排名:
69914
发表于:
2008-08-26 18:32:10
7
楼 得分:
0
你的MessageBox都没有父窗口,你叫它怎么显示呢?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhoutler
一代程序巨浆--用浆糊粘贴别人代码巨厉害
等级:
可用分等级:
小地主
总技术分:
2078
总技术分排名:
10267
发表于:
2008-08-27 00:39:11
8
楼 得分:
0
MFC在这方面有缺陷的,工作者线程,一般处理数据,GUI线程进行界面显示处理的。
可以考虑用Dot net。MFC老拉,也跟不上时代的发展了。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
liweiwei0808
liweiwei
等级:
可用分等级:
贫农
总技术分:
219
总技术分排名:
56938
发表于:
2008-08-28 17:47:09
9
楼 得分:
0
AfxMessageBox呢?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
udvlin
该用户很懒,没有填写自己的个人昵称
等级:
可用分等级:
贫农
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-30 13:39:43
10
楼 得分:
0
引用 7 楼 chzhk007 的回复:
你的MessageBox都没有父窗口,你叫它怎么显示呢?
那为什么在main中MessageBox可以显示呢?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
udvlin
该用户很懒,没有填写自己的个人昵称
等级:
可用分等级:
贫农
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-30 13:40:52
11
楼 得分:
0
引用 5 楼 bukkake 的回复:
Code Generation调成多线程了么?
实际的工作中如果确实需要显示对话框,可以想UI线程发消息,让UI线程显示
请教何为UI线程?
写在main中的是UI线程吗?如何区分UI线程和普通线程?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zzultc
想不到昵称的笨蛋
等级:
可用分等级:
富农
总技术分:
2675
总技术分排名:
8001
发表于:
2008-08-30 14:05:32
12
楼 得分:
0
我觉得问题有两个:
1、_beginthread这样的函数启动线程时,线程函数应该是WINAPI类型的,也就是应该是stdcal类型。
2、主线程执行的快,结束后,进程结束,你的副线程只是刚刚被构造,还没有来的及执行就又被kill了,你可以在主线程里加入等待函数,或者简单的sleep(2000)等待2秒看看。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
oo_v_oo
哈哈人生
等级:
可用分等级:
中农
总技术分:
2198
总技术分排名:
9779
发表于:
2008-08-30 14:14:22
13
楼 得分:
0
包工头都跑路了,工人还干个啥
想法把包工头留下吧
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lhtang
Tang
等级:
可用分等级:
中农
总技术分:
167
总技术分排名:
67167
发表于:
2008-08-30 16:39:47
14
楼 得分:
0
8楼鄙视你,mfc能落伍?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wish_cn
等级:
可用分等级:
长工
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-31 01:02:07
15
楼 得分:
0
你的主线程退太快了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
shuice
廖小谊
等级:
可用分等级:
中农
总技术分:
32
总技术分排名:
151581
发表于:
2008-09-24 18:07:23
16
楼 得分:
0
因为main函数结束的太快了,你把main函数最后加一个cin>>i,试试
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chenhuaichao314
sandy.chen
等级:
可用分等级:
短工
总技术分:
2
总技术分排名:
285337
发表于:
2008-09-26 12:32:11
17
楼 得分:
0
引用楼主 udvlin 的帖子:
#include <iostream>
#include <string>
#include <process.h>
#include <windows.h>
using namespace std;
void _cdecl thr(void * param);
void main() {
ULONG hThread = _beginthread(thr,1024,NULL);
const char * str = "hello world!";
string str1(str);
int a[] = {'a',2,3,4,4};
cout < < str1;
cout < < *(a+1);
cin>>str1; //这里有这样一个Cin输入,对话框可以显示。(我已在vs2005测试通过!!!)
}
void thr(void * param)
{
…
有这样一个输入等待,主线程没有退出,可以弹出对话框 !
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友