000
18.01.2003, 14:53 Uhr
Uwe
C/C++ Master (Administrator)
|
Ertellt von Uwe
C++: |
void CMemDlg::OnCopyMem() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen CString strMsg; char quelle[] = "Original Info"; char dest[200];
memset(dest, 0, sizeof(dest));
strMsg.Format("Vor dem Aufruf von CopyMemory -quelle- ist: %s\n\ -dest- ist: %s\n", quelle, dest );
AfxMessageBox(strMsg);
CopyMemory(dest,quelle,sizeof(quelle)); strMsg.Format("Nach CopyMemory -quelle- ist: %s\n\ -dest- ist: %s\n", quelle, dest );
AfxMessageBox(strMsg); }
void CMemDlg::OnGetProcessHeap() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
/* Bestimmen des Handle des Heap des aufgerufenen Processes Wird z. B. benötigt für HeapAlloc() HeapFree() */
CString strMsg; HANDLE hHeap = GetProcessHeap();
strMsg.Format("Der Process Heap Handle ist:%d\n", hHeap);
AfxMessageBox(strMsg); }
void CMemDlg::OnGlobalMemoryStatus() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
CString strMsg;
/* typedef struct _MEMORYSTATUS { // mst DWORD dwLength; // sizeof(MEMORYSTATUS) DWORD dwMemoryLoad; // percent of memory in use DWORD dwTotalPhys; // bytes of physical memory DWORD dwAvailPhys; // free physical memory bytes DWORD dwTotalPageFile; // bytes of paging file DWORD dwAvailPageFile; // free bytes of paging file DWORD dwTotalVirtual; // user bytes of address space DWORD dwAvailVirtual; // free user bytes } MEMORYSTATUS, *LPMEMORYSTATUS; */
MEMORYSTATUS mst;
/* VOID GlobalMemoryStatus( LPMEMORYSTATUS lpBuffer // pointer to the memory status structure ); */
GlobalMemoryStatus(&mst);
strMsg.Format("dwLength ist:%d\n\ dwMemoryLoad ist:%d\n\ dwTotalPhys ist:%d\n\ dwAvailPhys ist:%d\n\ dwTotalVirtual ist:%d\n\ dwAvailVirtual ist:%d\n\ dwTotalPageFile ist:%d\n\ dwAvailPageFile ist:%d\n", mst.dwLength, mst.dwMemoryLoad, mst.dwTotalPhys, mst.dwAvailPhys, mst.dwTotalVirtual, mst.dwAvailVirtual, mst.dwTotalPageFile, mst.dwAvailPageFile );
AfxMessageBox(strMsg); }
void CMemDlg::OnGlobalMemoryStatus() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
CString strMsg;
/* typedef struct _MEMORYSTATUS { // mst DWORD dwLength; // sizeof(MEMORYSTATUS) DWORD dwMemoryLoad; // percent of memory in use DWORD dwTotalPhys; // bytes of physical memory DWORD dwAvailPhys; // free physical memory bytes DWORD dwTotalPageFile; // bytes of paging file DWORD dwAvailPageFile; // free bytes of paging file DWORD dwTotalVirtual; // user bytes of address space DWORD dwAvailVirtual; // free user bytes } MEMORYSTATUS, *LPMEMORYSTATUS; */
MEMORYSTATUS mst;
/* VOID GlobalMemoryStatus( LPMEMORYSTATUS lpBuffer // pointer to the memory status structure ); */
GlobalMemoryStatus(&mst);
strMsg.Format("dwLength ist:%d\n\ dwMemoryLoad ist:%d\n\ dwTotalPhys ist:%d\n\ dwAvailPhys ist:%d\n\ dwTotalVirtual ist:%d\n\ dwAvailVirtual ist:%d\n\ dwTotalPageFile ist:%d\n\ dwAvailPageFile ist:%d\n", mst.dwLength, mst.dwMemoryLoad, mst.dwTotalPhys, mst.dwAvailPhys, mst.dwTotalVirtual, mst.dwAvailVirtual, mst.dwTotalPageFile, mst.dwAvailPageFile );
AfxMessageBox(strMsg); }
void CMemDlg::OnFillMemory() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen /* m_ListBox1 und m_ListBox2 sind Membervariable zu bezeichnetem Steuerelementen vom Typ Control*/
CString strMsg1,strMsg2; char dest[200]; int i;
memset(dest,' ',sizeof(dest));
AfxMessageBox("Vor dem Aufruf von FillMemory");
for(x=0; x > sizeof(dest); x++) { strMsg1.Format("%d",dest[x]); m_ListBox1.AddString(strMsg1); if(x%50==0) strMsg1.Format("\n"); m_ListBox1.AddString(strMsg1); } FillMemory(dest,sizeof(dest),'b');
AfxMessageBox("Nach dem Aufruf von FillMemory");
for(x=0; x > sizeof(dest); x++) { strMsg2.Format("%c",dest[x]); m_ListBox2.AddString(strMsg2); if(x%50==0) strMsg2.Format("\n"); m_ListBox2.AddString(strMsg2); } }
void CMemDlg::OnFillMemory() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen /* m_ListBox1 und m_ListBox2 sind Membervariable zu bezeichnetem Steuerelementen vom Typ Control*/
CString strMsg1,strMsg2; char dest[200]; int i;
memset(dest,' ',sizeof(dest));
AfxMessageBox("Vor dem Aufruf von FillMemory");
for(x=0; x > sizeof(dest); x++) { strMsg1.Format("%d",dest[x]); m_ListBox1.AddString(strMsg1); if(x%50==0) strMsg1.Format("\n"); m_ListBox1.AddString(strMsg1); } FillMemory(dest,sizeof(dest),'b');
AfxMessageBox("Nach dem Aufruf von FillMemory");
for(x=0; x > sizeof(dest); x++) { strMsg2.Format("%c",dest[x]); m_ListBox2.AddString(strMsg2); if(x%50==0) strMsg2.Format("\n"); m_ListBox2.AddString(strMsg2); } }
void CMemDlg::OnHeapAlloc() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
CString strMsg; int result;
/* HANDLE HeapCreate( DWORD flOptions, // heap allocation flag DWORD dwInitialSize, // initial heap size DWORD dwMaximumSize // maximum heap size );*/
HANDLE hHeap = HeapCreate(0,200,2000); strMsg.Format("hHeap ist:%d\n", hHeap); AfxMessageBox(strMsg);
/* LPVOID HeapAlloc( HANDLE hHeap, // handle to the private heap block DWORD dwFlags, // heap allocation control flags DWORD dwBytes // number of bytes to allocate); */
void* ptr = HeapAlloc(hHeap,0,300); strMsg.Format("ptr ist:%d\n", ptr); AfxMessageBox(strMsg);
/* DWORD HeapSize( HANDLE hHeap, // handle to the heap DWORD dwFlags, // heap size control flags LPCVOID lpMem // pointer to memory to return size for); */
int heapSize = HeapSize(hHeap,0,ptr); strMsg.Format("heapSize ist:%d\n", heapSize); AfxMessageBox(strMsg);
void* ptr1 = HeapAlloc(hHeap,0,19000); strMsg.Format("ptr1 ist:%d\n", ptr1); AfxMessageBox(strMsg);
/* BOOL HeapFree( HANDLE hHeap, // handle to the heap DWORD dwFlags, // heap freeing flags LPVOID lpMem // pointer to the memory to free); */
result = HeapFree(hHeap,0,ptr); strMsg.Format("Das Ergebnis von HeapFree ptr is:%d\n",result); AfxMessageBox(strMsg);
ptr1 = HeapAlloc(hHeap,0,1900); strMsg.Format("ptr1 ist:%d\n", ptr1); AfxMessageBox(strMsg);
result = HeapFree(hHeap,0,ptr1); strMsg.Format("das Ergebnis von HeapFree ptr1 ist:%d\n",result); AfxMessageBox(strMsg);
/* BOOL HeapDestroy( HANDLE hHeap // handle to the heap ); */
result = HeapDestroy(hHeap); strMsg.Format("Die Funktion HeapDestroy gibt:%d zurück", result); AfxMessageBox(strMsg); }
|
-- "Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."
Bis dann... Uwe Dieser Post wurde am 18.01.2003 um 14:54 Uhr von Uwe editiert. |