![]() |
|
![]() ![]() ![]() |
|
maq |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 28.10.2005 Репутация: нет Всего: нет |
При передаче переменной в качестве параметра функции я не могу манипулировать (изменять) ее значением.
Переменная класса RlistCtrl посылает WM_NOTIFY сообщение родительскому окну, а в качестве параметра посылает указатель на переменную LPWSTR для изменения. Родительское окно меняет значение переменной. При вызове return TRUE в классе RlistCtrl, выдается ошибка HEAP CORRUPTION DETECTED: after normal block ... CRT detected that the application wrote to memory after end of heap buffer. BOOL RListCtrl::EditValidate(void) { CString sItem; pEdit->GetWindowText(sItem); LPWSTR lStr = sItem.GetBuffer(); NMHDR* pNMHDR = new NMHDR; pNMHDR->hwndFrom = m_hWnd; pNMHDR->idFrom = (UINT_PTR) lStr; pNMHDR->code = UDM_LC_VALIDATE; LRESULT pResult = GetParent()->SendMessage(WM_NOTIFY, GetDlgCtrlID(), (LPARAM) pNMHDR); if(pResult == 0) { pEdit->SetWindowText(sItem); pEdit->SetModify(TRUE); } if(pResult == 0) { return TRUE; } else { return FALSE; } } BOOL VPTransD1Card::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { NMHDR* pNMHDR = (NMHDR*) lParam; if(pNMHDR) { if(pNMHDR->code == UDM_LC_VALIDATE) { LPWSTR p = (LPWSTR) pNMHDR->idFrom; CString s1; s1.Format(_T("%d"), 90); wcscpy_s(p, s1.GetLength()*2, s1); return 0; } } return VCard::OnNotify(wParam, lParam, pResult); } |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: 1 Всего: 0 |
одно условие: проект должен быть собран с use unicode character set, иначе нужно делать преобразования из char в wchar_t Это сообщение отредактировал(а) deniska - 11.7.2008, 07:37 |
|||
|
||||
maq |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 28.10.2005 Репутация: нет Всего: нет |
deniska, спасибо, заработало!
![]() но мне просто интересно, а почему я не могу использовать CString, а именно wchar_t[x]? |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |