VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 396|回复: 4

[求助] DialogBox和EndDialog传值

[复制链接]
91_avatar_middle
在线会员 发表于 2018-6-29 13:18:03 | 显示全部楼层 |阅读模式
3驿站币
求助 我使用DialogBox返回值进行窗口传值 EndDialog代码:
  1. TCHAR str[MAX_PATH];
  2. GetDlgItemText(hwnd,IDC_EDIT,str,MAX_PATH);
  3. EndDialog(hwnd,(INT_PTR)str);
复制代码
我把指针传给第二个参数
然后DialogBox取出来但是值不对:
  1. LPTSTR str;
  2. str= (LPTSTR)DialogBox(hInst,MAKEINTRESOURCE(IDD_INPUT), hWnd, (DLGPROC)Input_Proc);
  3. if(str!=NULL)
  4. {                                                                               
  5.           MessageBox(hWnd,str,0,0);
  6. }
复制代码





上一篇:strcpy_s栈引发异常
下一篇:minifilter文件透明加密驱动
51_avatar_middle
online_admins 发表于 2018-6-29 13:40:20 | 显示全部楼层
你的 str 是个局部变量吧?改成 new 出来的指针呢?之后再按照你当前的方法试试
回复

使用道具 举报

91_avatar_middle
ico_lz  楼主| 发表于 2018-6-29 18:07:51 | 显示全部楼层
Syc 发表于 2018-6-29 13:40
你的 str 是个局部变量吧?改成 new 出来的指针呢?之后再按照你当前的方法试试

是的  已经发现问题了  谢谢 可是这样的话又出现一个问题  我在EndDialog这边new出来的内存需要在DialogBox这边释放,有办法解决这个问题么 除了全局变量
回复

使用道具 举报

51_avatar_middle
online_admins 发表于 2018-6-29 18:35:33 | 显示全部楼层
groveer 发表于 2018-6-29 18:07
是的  已经发现问题了  谢谢 可是这样的话又出现一个问题  我在EndDialog这边new出来的内存需要在DialogB ...

两边不是在一个进程中吗?如果是的话这边申请,那边释放应该没问题啊!
要不然就用 C++ 中的智能指针吧
回复

使用道具 举报

75_avatar_middle
在线会员 发表于 2018-6-29 23:13:42 | 显示全部楼层
考虑使用sendmessage  字符串做参数 。或者使用回调函数的方式。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-1-16 19:13

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表