vs c++ windows 桌面应用程序的GetDlgItemText函数引起炸堆怎么解决

INT_PTR CALLBACK LOgin(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);

switch (message)
{
case WM_INITDIALOG:
    return (INT_PTR)TRUE;

case WM_COMMAND:
    if (LOWORD(wParam) == IDCANCEL)
    {
        EndDialog(hDlg, LOWORD(wParam));
        return (INT_PTR)TRUE;
    }
    else if (LOWORD(wParam) == IDC_USER)
    {
        LPWSTR acount = str2LPW("l");
        LPWSTR password = str2LPW("l");
        
        GetDlgItemText(hDlg, IDC_EDIT1, acount, 100);
        SetDlgItemText(hDlg, IDC_EDIT2, acount);
            EndDialog(hDlg, LOWORD(wParam));
            DialogBox(hInst, MAKEINTRESOURCE(IDD_MENU), hDlg, MEnu);
            return (INT_PTR)TRUE;

    }

}
}
这代码如果我在Edit Control 里面输入超过4个字符就会触发断点炸堆,如果把GetDlgItemText(hDlg, IDC_EDIT1, acount, 100);里面的100换成4好像也不会炸堆,这个问题要怎么解决,或者有什么别的办法可以提取Edit Control内的内容吗?

LPWSTR acount = str2LPW("l");
改为
wchar_t a[100+1];
LPWSTR acount = &a;