V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
s609926202
V2EX  ›  C++

MFC 长时间运行出现 Buffer too small 错误

  •  
  •   s609926202 ·
    shangdev · 2022-06-16 10:29:08 +08:00 · 1637 次点击
    这是一个创建于 895 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上查了一下,大概是以下代码引起的:

    DWORD g_index;
    void main ()
    {
      CString B;
      B.Format(L"%d", g_index + 1); // 时间长会报错:Buffer too small
      g_index++;
    }
    

    上述代码是在 MFC List 表格组件中用来生成自增 ID ,1 、2 、3...的
    App 长时间运行就会出现 Buffer too small ,结合网上查询猜测可能是上述代码引起的。

    所以请教一下如何解决呢?

    3 条回复    2022-06-16 11:17:05 +08:00
    dearmymy
        1
    dearmymy  
       2022-06-16 10:52:53 +08:00
    竟然是 没饭吃,猜测是 CString b 是不是放的位置不对,比如放到 for 循环内部?你试试把 b 变量也全局变量下
    s609926202
        2
    s609926202  
    OP
       2022-06-16 11:12:55 +08:00
    @dearmymy

    我是放到 afx_msg LRESULT CChatRecords::OnShowmessage(WPARAM wParam, LPARAM lParam) {} 里的
    minami
        3
    minami  
       2022-06-16 11:17:05 +08:00
    %d->%u
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:13 · PVG 22:13 · LAX 06:13 · JFK 09:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.