SendMessage関数を使用してリストボックスの内容を表示しようとしています。ただし、ボタンを押して以下のコードを実行すると、呼び出したときにコードに次のセグメンテーション違反が発生します
SendMessage(hwndLBox,LB_GETTEXT,k,(LPARAM)lBoxitems);
セグメンテーション違反(dbgheap.c):
extern "C" _CRTIMP int __cdecl _CrtIsValidHeapPointer(
const void * pUserData
)
{
if (!pUserData)
return FALSE;
if (!_CrtIsValidPointer(pHdr(pUserData), sizeof(_CrtMemBlockHeader), FALSE))
return FALSE;
return HeapValidate( _crtheap, 0, pHdr(pUserData) );
}
このセグメンテーション違反を引き起こすコード:
else if(LOWORD(wParam)==ID_BUTTON_CALC){
int getLboxitems = SendMessage(hwndLBox,LB_GETCOUNT,NULL,NULL);
char * lBoxitems = new char[getLboxitems];
for(unsigned int k=0; k < getLboxitems; k++){
SendMessage(hwndLBox,LB_GETTEXT,k,(LPARAM)lBoxitems);
MessageBox(hwnd,lBoxitems,"Listbox says",NULL);
}
delete[] lBoxitems;
}
Visual StudioBeta2011を使用してコードをコンパイルしています。