我试图复制LPTSTR并将该字符串作为成员变量存储在对象中。但是,我尝试复制LPTSTR的尝试似乎失败了,当我访问/打印复制的LPTSTR的值时,程序崩溃。

是否可以复制LPTSTR并将其存储在下面的类中?还是仅使用TCHAR *更好?

class Checkbox
{
   private:
      LPTSTR text;
      HWND hwnd;

   public:
      Checkbox(HWND nHwnd, LPTSTR nText)
      {
        lstrcpy(checkText, text);
      }

      void print()
      {
        // Causes a crash
        MessageBox(hwnd, text, text, MB_OK);
      }
};

最佳答案

LPTSTR只是一个指针。因此,在使用内存之前,您需要注意分配内存。 TCHAR *也是如此。另外,如果您需要担心unicode字符串,则可以使用wstring。

09-25 22:04