Gremlin92
@Gremlin92
Целеустремленный

Кидает исключение на вызов метода?

SetWindowText(*edit1, L"Text");
			GetWindowText(*edit1, *login, count);
			std::cout << CW2A(*login) << std::endl;

Set происходит, а Get посмотрел 2я переменная NULL, отчего у cw2a кидает это
Вызвано исключение по адресу 0x000007FEC66EFCB1 (ucrtbased.dll) в Demo2.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x0000000000000000
в этом коде
_NODISCARD static _CONSTEXPR17 size_t length(_In_z_ const _Elem* const _First) noexcept { // strengthened
        // find length of null-terminated string
#if _HAS_CXX17
#if _HAS_CHAR8_T
        if constexpr (is_same_v<_Elem, char8_t>) {
#if _HAS_U8_INTRINSICS
            return __builtin_u8strlen(_First);
#else // ^^^ use u8 intrinsics / no u8 intrinsics vvv
            return _Char_traits<_Elem, _Int_type>::length(_First);
#endif // _HAS_U8_INTRINSICS
        } else
#endif // _HAS_CHAR8_T
        {
            return __builtin_strlen(_First);
        }
#else // _HAS_CXX17
        return _CSTD strlen(reinterpret_cast<const char*>(_First));//туть
#endif // _HAS_CXX17
    }
  • Вопрос задан
  • 377 просмотров
Решения вопроса 1
Gremlin92
@Gremlin92 Автор вопроса
Целеустремленный
Поменял код на такой:
/*
			GetWindowText(*edit1, *login, count);
			GetWindowText(*edit2, *pass, count);
			std::cout << CW2A(*login)<<std::endl;
			std::cout << CW2A(*pass) << std::endl;
			*/
			//Edit_SetText(edit1, TEXT("91797 w7f9a789wf evckavolw4koar"));
			//SetWindowText(edit1, L"Text");
			//GetWindowText(edit1, login,count);
			//Edit_GetText(edit1, login, count);
			int cch;
			//static TCHAR pszTextBuff[500];
			cch = SendMessage(edit1, WM_GETTEXT, 500, (LPARAM)pszTextBuff);
			cch = SendMessage(edit2, WM_GETTEXT, 500, (LPARAM)Buff1);
			if (cch == 0)
				;//	MessageBox(hwnd, TEXT("Ââåäèòå òåêñò"), TEXT("×èòàåì Edit"), MB_OK);
			else
			{
				//TCHAR Buff1[500] = { 0 };
				/*
				SYSTEMTIME st; GetSystemTime(&st);
				wsprintf(Buff1, TEXT("Âðåìÿ : %d ÷ %d ìèí %d ñåê\n"),
					st.wHour + 3, st.wMinute, st.wSecond);
				lstrcat(Buff1, __TEXT("Òåêñò â ïàìÿòè: "));
				*/
				//lstrcat(Buff1, pszTextBuff);
				//MessageBox(hwnd, Buff1, TEXT("Ñîäåðæèìîå áóôåðà"), MB_OK);
				std::wcout << pszTextBuff << std::endl;
				std::wcout << Buff1 << std::endl;
			}
		}

и заработало! все дело было еще в объявлении типа переменной:
static HWND edit1, edit2;

	static TCHAR pszTextBuff[500];
	static TCHAR Buff1[500];
//static LPWSTR *login,*pass;

здесь логин,пароль заменен на два тчарных массива
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы