求大神解决总是遇见 遇到遇到不适当的参数

GW786228836 2014-05-07 02:09:56
CEdit *g_m_edit1;
g_m_edit1 = (CEdit * )GetDlgItem(IDC_EDIT1);

CString str;
str.Format(_T("正在传输%s"),g_filename[i]);
g_m_edit2->SetWindowTextW(str); /////就是这行代码有问题


不是一直遇见,而是概率,大概五次中会遇到一次


...全文
9482 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ovo2008 2016-01-27
  • 打赏
  • 举报
回复
16楼的兄弟,是啥解决的? 我调试时也发现了,是返回时的Edit指针为空所致,我以确定我的 m_edit1 = (CEdit * )GetDlgItem(IDC_EDIT1); 其中的ID号正确存在, 能详细说说,为什么返回是空指针呢?
jason_cs 2015-03-05
  • 打赏
  • 举报
回复
我也遇到这情况,已经解决。应该是g_m_edit1 为空造成的。
缘中人 2014-05-09
  • 打赏
  • 举报
回复
vc++了这都
勉励前行 2014-05-09
  • 打赏
  • 举报
回复
1、 g_m_edit1 = (CEdit * )GetDlgItem(IDC_EDIT1); //这里用的是强制指针转换,需要确认。 if(g_m_edit1 == NULL) .... 2、 g_m_edit1->SetWindowTextW() 看下这个函数的原型,参数与原型要严格匹配。为方便使用CString有很多自动类型转换,可能导致问题。
GW786228836 2014-05-09
  • 打赏
  • 举报
回复
引用 11 楼 draculamx 的回复:
既然是vector,那么这个 g_filename[i] 里面的 i 有没有可能越界呢???
没有越界 因为报的错误是 遇到遇到不适当的参数
GW786228836 2014-05-09
  • 打赏
  • 举报
回复
引用 13 楼 PPower 的回复:
1、 g_m_edit1 = (CEdit * )GetDlgItem(IDC_EDIT1); //这里用的是强制指针转换,需要确认。 if(g_m_edit1 == NULL) .... 2、 g_m_edit1->SetWindowTextW() 看下这个函数的原型,参数与原型要严格匹配。为方便使用CString有很多自动类型转换,可能导致问题。
SetWindowTextW(LPCTSTR lpstring) 参数是这个 我已经把 Cstring 做了 getBuffer()转换,用完后也ReleaseBuffer(),还是会出问题,强制指针转换也确认过了
GW786228836 2014-05-08
  • 打赏
  • 举报
回复
引用 9 楼 draculamx 的回复:
g_filename[i],绝对和这个有关,你最好把它的内容贴出来看看
g_filename[i] 就是正在传输的名称 vector<CString> g_filename; 然后往里面push_back 文件名
draculamx 2014-05-08
  • 打赏
  • 举报
回复
既然是vector,那么这个 g_filename[i] 里面的 i 有没有可能越界呢???
draculamx 2014-05-07
  • 打赏
  • 举报
回复
g_filename[i],绝对和这个有关,你最好把它的内容贴出来看看
GW786228836 2014-05-07
  • 打赏
  • 举报
回复
引用 7 楼 ccrun 的回复:
g_m_edit2->SetWindowTextW(str); 这一句的前面,加一句: OutputDebugString(str); 然后观察一下,出错的时候,str输出的值,是否正确。
我做的 activex插件 所以没办法用这个 但是我用记录日志的办法记录了 str的值 值得内容是对的
ccrun.com 2014-05-07
  • 打赏
  • 举报
回复
g_m_edit2->SetWindowTextW(str); 这一句的前面,加一句: OutputDebugString(str); 然后观察一下,出错的时候,str输出的值,是否正确。
GW786228836 2014-05-07
  • 打赏
  • 举报
回复
引用 5 楼 GW786228836 的回复:
[quote=引用 4 楼 ccrun 的回复:] 你这个代码很诡异啊,GetDlgItem返回的结果给了g_m_edit1 ,但是后面的代码用的却是g_m_edit2 ?
哦 写错了 写错了 g_m_edit2应该是 g_m_edit1 见笑 见笑[/quote] 复制错了 不过问题还是那个问题 抱歉哈
GW786228836 2014-05-07
  • 打赏
  • 举报
回复
引用 4 楼 ccrun 的回复:
你这个代码很诡异啊,GetDlgItem返回的结果给了g_m_edit1 ,但是后面的代码用的却是g_m_edit2 ?
哦 写错了 写错了 g_m_edit2应该是 g_m_edit1 见笑 见笑
ccrun.com 2014-05-07
  • 打赏
  • 举报
回复
你这个代码很诡异啊,GetDlgItem返回的结果给了g_m_edit1 ,但是后面的代码用的却是g_m_edit2 ?
GW786228836 2014-05-07
  • 打赏
  • 举报
回复
引用 1 楼 ccrun 的回复:
g_filename[i] 是啥玩意?
g_filename[i] 是一个打酱油的 你就当是个 字符串
GW786228836 2014-05-07
  • 打赏
  • 举报
回复
引用 楼主 GW786228836 的回复:
CEdit *g_m_edit1; g_m_edit1 = (CEdit * )GetDlgItem(IDC_EDIT1); CString str; str.Format(_T("正在传输%s"),g_filename[i]); g_m_edit2->SetWindowTextW(str); /////就是这行代码有问题 不是一直遇见,而是概率,大概五次中会遇到一次
g_filename[i] 是一个打酱油的 你就当是个 字符串
ccrun.com 2014-05-07
  • 打赏
  • 举报
回复
g_filename[i] 是啥玩意?

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧