Solved

trying to get the memory usage of a process: compile error Visual c++.net

Posted on 2003-12-01
18
3,177 Views
Last Modified: 2013-12-14
Hello,
I am trying to get the memory usage of the processes running on my system,on this i have found the
program (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/perfmon/base/collecting_memory_usage_information_for_a_process.asp)
as an answer given a similar question before.But i am unable to compile the program,i am using visual studio.net(i am relatively new to .net) .
I create the project as a managed c++ empty project.
As i try to build the project i get the following errors:

c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(8): error C2065: 'pmc' : undeclared identifier
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(8): error C2065: 'PROCESS_MEMORY_COUNTERS' : undeclared identifier
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(8): error C2146: syntax error : missing ';' before identifier 'pmc'
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(22): error C2065: 'GetProcessMemoryInfo' : undeclared identifier
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(22): error C2070: ''unknown-type'': illegal sizeof operand
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(24): error C2228: left of '.PageFaultCount' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(26): error C2228: left of '.PeakWorkingSetSize' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(27): error C2228: left of '.WorkingSetSize' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(29): error C2228: left of '.QuotaPeakPagedPoolUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(31): error C2228: left of '.QuotaPagedPoolUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(33): error C2228: left of '.QuotaPeakNonPagedPoolUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(35): error C2228: left of '.QuotaNonPagedPoolUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(36): error C2228: left of '.PagefileUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(38): error C2228: left of '.PeakPagefileUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(51): error C2065: 'EnumProcesses' : undeclared identifier
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(51): error C2171: '!' : illegal on operands of type ''unknown-type''

I have tried including psapi.h in the header files of my solution explorer with no change in the result.Could anyone tell me how can i link the header or psapi.lib files to this project so that it may build.
thanks
0
Comment
Question by:saifnawaz
  • 9
  • 8
18 Comments
 
LVL 48

Expert Comment

by:AlexFM
Comment Utility
1) Since PSAPI functions work in Windows NT 4.0 or later, try to define _WIN32_WINNT>=0x0400 according to this article:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdkintro/sdkintro/using_the_sdk_headers.asp

2) Why do you need managed C++ project for this?

3) Show exactly what are you doing: start of cpp file (all #include and #using statements) and code fragment which is not compiled.
0
 

Author Comment

by:saifnawaz
Comment Utility
hi,
this is the first time i am using visual studio c++.net so i am not sure if managed c++ project is the way to go about this.
my code is :
#include <windows.h>
#include <stdio.h>
#include "psapi.h"

void PrintMemoryInfo( DWORD processID )
{
    HANDLE hProcess;
    PROCESS_MEMORY_COUNTERS pmc;

    // Print the process identifier.

    printf( "\nProcess ID: %u\n", processID );

    // Print information about the memory usage of the process.

    hProcess = OpenProcess(  PROCESS_QUERY_INFORMATION |
                                    PROCESS_VM_READ,
                                    FALSE, processID );
    if (NULL == hProcess)
        return;

    if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) )
    {
        printf( "\tPageFaultCount: 0x%08X\n", pmc.PageFaultCount );
        printf( "\tPeakWorkingSetSize: 0x%08X\n",
                  pmc.PeakWorkingSetSize );
        printf( "\tWorkingSetSize: 0x%08X\n", pmc.WorkingSetSize );
        printf( "\tQuotaPeakPagedPoolUsage: 0x%08X\n",
                  pmc.QuotaPeakPagedPoolUsage );
        printf( "\tQuotaPagedPoolUsage: 0x%08X\n",
                  pmc.QuotaPagedPoolUsage );
        printf( "\tQuotaPeakNonPagedPoolUsage: 0x%08X\n",
                  pmc.QuotaPeakNonPagedPoolUsage );
        printf( "\tQuotaNonPagedPoolUsage: 0x%08X\n",
                  pmc.QuotaNonPagedPoolUsage );
        printf( "\tPagefileUsage: 0x%08X\n", pmc.PagefileUsage );
        printf( "\tPeakPagefileUsage: 0x%08X\n",
                  pmc.PeakPagefileUsage );
    }

    CloseHandle( hProcess );
}

void main( )
{
    // Get the list of process identifiers.

    DWORD aProcesses[1024], cbNeeded, cProcesses;
    unsigned int i;

    if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
        return;

    // Calculate how many process identifiers were returned.

    cProcesses = cbNeeded / sizeof(DWORD);

    // Print the memory usage for each process

    for ( i = 0; i < cProcesses; i++ )
        PrintMemoryInfo( aProcesses[i] );
}

as i build this i get the errors:
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(8): error C2065: 'pmc' : undeclared identifier
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(8): error C2065: 'PROCESS_MEMORY_COUNTERS' : undeclared identifier
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(8): error C2146: syntax error : missing ';' before identifier 'pmc'
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(22): error C2065: 'GetProcessMemoryInfo' : undeclared identifier
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(22): error C2070: ''unknown-type'': illegal sizeof operand
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(24): error C2228: left of '.PageFaultCount' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(26): error C2228: left of '.PeakWorkingSetSize' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(27): error C2228: left of '.WorkingSetSize' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(29): error C2228: left of '.QuotaPeakPagedPoolUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(31): error C2228: left of '.QuotaPagedPoolUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(33): error C2228: left of '.QuotaPeakNonPagedPoolUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(35): error C2228: left of '.QuotaNonPagedPoolUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(36): error C2228: left of '.PagefileUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(38): error C2228: left of '.PeakPagefileUsage' must have class/struct/union type
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(51): error C2065: 'EnumProcesses' : undeclared identifier
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo\memore.cpp(51): error C2171: '!' : illegal on operands of type ''unknown-type''

0
 
LVL 48

Expert Comment

by:AlexFM
Comment Utility
Add line
#define _WIN32_WINNT 0x0400

before
#include <windows.h>

I think you don't need managed C++ project. Select unmanaged project, Win32 Console application.
0
 

Author Comment

by:saifnawaz
Comment Utility
I dont have an option for umanaged project/win32 console appliation for visual c++ .net, i have tried it as a windows project and added your line ,
i get the following error:
c:\Documents and Settings\saif\My Documents\Visual Studio Projects\memo2\mem.cpp(59): fatal error C1010: unexpected end of file while looking for precompiled header directive
0
 
LVL 48

Expert Comment

by:AlexFM
Comment Utility
Make Rebuild all.
0
 
LVL 48

Expert Comment

by:AlexFM
Comment Utility
I made the following experiement in Visual Studio 2003:

File - New - Project. In New Project dialog select: Visual C++ Projects, Win32, Win32 Console project. Create a project.
Add psapi.lib to linker (Project Properties, Linker, Input, Additional Dependencies).
Program text is:

#include "stdafx.h"

#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <stdio.h>
#include "psapi.h"



void PrintMemoryInfo( DWORD processID )
{
   HANDLE hProcess;
   PROCESS_MEMORY_COUNTERS pmc;

   // Print the process identifier.

   printf( "\nProcess ID: %u\n", processID );

   // Print information about the memory usage of the process.

   hProcess = OpenProcess(  PROCESS_QUERY_INFORMATION |
                                   PROCESS_VM_READ,
                                   FALSE, processID );
   if (NULL == hProcess)
       return;

   if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) )
   {
       printf( "\tPageFaultCount: 0x%08X\n", pmc.PageFaultCount );
       printf( "\tPeakWorkingSetSize: 0x%08X\n",
                  pmc.PeakWorkingSetSize );
       printf( "\tWorkingSetSize: 0x%08X\n", pmc.WorkingSetSize );
       printf( "\tQuotaPeakPagedPoolUsage: 0x%08X\n",
                  pmc.QuotaPeakPagedPoolUsage );
       printf( "\tQuotaPagedPoolUsage: 0x%08X\n",
                  pmc.QuotaPagedPoolUsage );
       printf( "\tQuotaPeakNonPagedPoolUsage: 0x%08X\n",
                  pmc.QuotaPeakNonPagedPoolUsage );
       printf( "\tQuotaNonPagedPoolUsage: 0x%08X\n",
                  pmc.QuotaNonPagedPoolUsage );
       printf( "\tPagefileUsage: 0x%08X\n", pmc.PagefileUsage );
        printf( "\tPeakPagefileUsage: 0x%08X\n",
                  pmc.PeakPagefileUsage );
   }

   CloseHandle( hProcess );
}


int _tmain(int argc, _TCHAR* argv[])
{
   // Get the list of process identifiers.

   DWORD aProcesses[1024], cbNeeded, cProcesses;
   unsigned int i;

   if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
       return 0;

   // Calculate how many process identifiers were returned.

   cProcesses = cbNeeded / sizeof(DWORD);

   // Print the memory usage for each process

   for ( i = 0; i < cProcesses; i++ )
       PrintMemoryInfo( aProcesses[i] );

   return 0;
}

Program is compiled and liked successfully.
0
 
LVL 48

Expert Comment

by:AlexFM
Comment Utility
And it even works!
0
 
LVL 49

Expert Comment

by:DanRollins
Comment Utility
Just so the obvious is not overlooked:
1) Right-click on the taskbar and choose Task Manager
2) Click the processes Tab
3) Start your program
4) Your program's name will appear in the list.  Click it once to highlight it and make it easy to watch.  Keep an eye on the "Mem Usage" column as you exercise the program.

-- Dan
0
 

Author Comment

by:saifnawaz
Comment Utility
Strange
i have done as above
and for linker:solution explorer(right click)--->to properties page-->linker-->input: addition dependencies : psapi.lib
but i am getting the same error :it does not recognise any of the functions of psapi
is there some path i should be setting?
p.s.: do i need to set the path to the psapi.lib in the addition dependencies?
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 48

Expert Comment

by:AlexFM
Comment Utility
psapi.h is opened successfully by Visual Studio, but declarations are ignored because of some #ifdef lines in this file. Open psapi.h in Visual Studio (right-click in psapi.h in the program text, select "Open Document"). Find any of unrecognized definitions (for example, GetProcessMemoryInfo). See what constants should be defined for it, for example:

#ifdef <something>

GetProcessMemoryInfo definition

#endif

Using Go to Definition function see what constants are defined or undefined in your project, what are their values. This is a way to find a reason why these definitions are not recognized.
0
 

Author Comment

by:saifnawaz
Comment Utility
hmmm the definations seem to be fine,
so i am now going to try to have all the definations in my source file and see if it works
the psapi.h file:
/*++ BUILD Version: 0001    // Increment this if a change has global effects

Copyright (c) 1994-1999  Microsoft Corporation

Module Name:

    psapi.h

Abstract:

    Include file for APIs provided by PSAPI.DLL

Author:

    Richard Shupak   [richards]  06-Jan-1994

Revision History:

--*/

#ifndef _PSAPI_H_
#define _PSAPI_H_

#if _MSC_VER > 1000
#pragma once
#endif

#ifdef __cplusplus
extern "C" {
#endif

BOOL
WINAPI
EnumProcesses(
    DWORD * lpidProcess,
    DWORD   cb,
    DWORD * cbNeeded
    );

BOOL
WINAPI
EnumProcessModules(
    HANDLE hProcess,
    HMODULE *lphModule,
    DWORD cb,
    LPDWORD lpcbNeeded
    );

DWORD
WINAPI
GetModuleBaseNameA(
    HANDLE hProcess,
    HMODULE hModule,
    LPSTR lpBaseName,
    DWORD nSize
    );

DWORD
WINAPI
GetModuleBaseNameW(
    HANDLE hProcess,
    HMODULE hModule,
    LPWSTR lpBaseName,
    DWORD nSize
    );

#ifdef UNICODE
#define GetModuleBaseName  GetModuleBaseNameW
#else
#define GetModuleBaseName  GetModuleBaseNameA
#endif // !UNICODE


DWORD
WINAPI
GetModuleFileNameExA(
    HANDLE hProcess,
    HMODULE hModule,
    LPSTR lpFilename,
    DWORD nSize
    );

DWORD
WINAPI
GetModuleFileNameExW(
    HANDLE hProcess,
    HMODULE hModule,
    LPWSTR lpFilename,
    DWORD nSize
    );

#ifdef UNICODE
#define GetModuleFileNameEx  GetModuleFileNameExW
#else
#define GetModuleFileNameEx  GetModuleFileNameExA
#endif // !UNICODE


typedef struct _MODULEINFO {
    LPVOID lpBaseOfDll;
    DWORD SizeOfImage;
    LPVOID EntryPoint;
} MODULEINFO, *LPMODULEINFO;


BOOL
WINAPI
GetModuleInformation(
    HANDLE hProcess,
    HMODULE hModule,
    LPMODULEINFO lpmodinfo,
    DWORD cb
    );


BOOL
WINAPI
EmptyWorkingSet(
    HANDLE hProcess
    );


BOOL
WINAPI
QueryWorkingSet(
    HANDLE hProcess,
    PVOID pv,
    DWORD cb
    );

BOOL
WINAPI
InitializeProcessForWsWatch(
    HANDLE hProcess
    );


typedef struct _PSAPI_WS_WATCH_INFORMATION {
    LPVOID FaultingPc;
    LPVOID FaultingVa;
} PSAPI_WS_WATCH_INFORMATION, *PPSAPI_WS_WATCH_INFORMATION;

BOOL
WINAPI
GetWsChanges(
    HANDLE hProcess,
    PPSAPI_WS_WATCH_INFORMATION lpWatchInfo,
    DWORD cb
    );

DWORD
WINAPI
GetMappedFileNameW(
    HANDLE hProcess,
    LPVOID lpv,
    LPWSTR lpFilename,
    DWORD nSize
    );

DWORD
WINAPI
GetMappedFileNameA(
    HANDLE hProcess,
    LPVOID lpv,
    LPSTR lpFilename,
    DWORD nSize
    );

#ifdef UNICODE
#define GetMappedFileName  GetMappedFileNameW
#else
#define GetMappedFileName  GetMappedFileNameA
#endif // !UNICODE

BOOL
WINAPI
EnumDeviceDrivers(
    LPVOID *lpImageBase,
    DWORD cb,
    LPDWORD lpcbNeeded
    );


DWORD
WINAPI
GetDeviceDriverBaseNameA(
    LPVOID ImageBase,
    LPSTR lpBaseName,
    DWORD nSize
    );

DWORD
WINAPI
GetDeviceDriverBaseNameW(
    LPVOID ImageBase,
    LPWSTR lpBaseName,
    DWORD nSize
    );

#ifdef UNICODE
#define GetDeviceDriverBaseName  GetDeviceDriverBaseNameW
#else
#define GetDeviceDriverBaseName  GetDeviceDriverBaseNameA
#endif // !UNICODE


DWORD
WINAPI
GetDeviceDriverFileNameA(
    LPVOID ImageBase,
    LPSTR lpFilename,
    DWORD nSize
    );

DWORD
WINAPI
GetDeviceDriverFileNameW(
    LPVOID ImageBase,
    LPWSTR lpFilename,
    DWORD nSize
    );

#ifdef UNICODE
#define GetDeviceDriverFileName  GetDeviceDriverFileNameW
#else
#define GetDeviceDriverFileName  GetDeviceDriverFileNameA
#endif // !UNICODE

// Structure for GetProcessMemoryInfo()

typedef struct _PROCESS_MEMORY_COUNTERS {
    DWORD cb;
    DWORD PageFaultCount;
    SIZE_T PeakWorkingSetSize;
    SIZE_T WorkingSetSize;
    SIZE_T QuotaPeakPagedPoolUsage;
    SIZE_T QuotaPagedPoolUsage;
    SIZE_T QuotaPeakNonPagedPoolUsage;
    SIZE_T QuotaNonPagedPoolUsage;
    SIZE_T PagefileUsage;
    SIZE_T PeakPagefileUsage;
} PROCESS_MEMORY_COUNTERS;
typedef PROCESS_MEMORY_COUNTERS *PPROCESS_MEMORY_COUNTERS;

BOOL
WINAPI
GetProcessMemoryInfo(
    HANDLE Process,
    PPROCESS_MEMORY_COUNTERS ppsmemCounters,
    DWORD cb
    );

typedef struct _PERFORMACE_INFORMATION {
    DWORD cb;
    SIZE_T CommitTotal;
    SIZE_T CommitLimit;
    SIZE_T CommitPeak;
    SIZE_T PhysicalTotal;
    SIZE_T PhysicalAvailable;
    SIZE_T SystemCache;
    SIZE_T KernelTotal;
    SIZE_T KernelPaged;
    SIZE_T KernelNonpaged;
    SIZE_T PageSize;
    DWORD HandleCount;
    DWORD ProcessCount;
    DWORD ThreadCount;
} PERFORMACE_INFORMATION, *PPERFORMACE_INFORMATION;

BOOL
WINAPI
GetPerformanceInfo (
    PPERFORMACE_INFORMATION pPerformanceInformation,
    DWORD cb
    );

typedef struct _ENUM_PAGE_FILE_INFORMATION {
    DWORD cb;
    DWORD Reserved;
    SIZE_T TotalSize;
    SIZE_T TotalInUse;
    SIZE_T PeakUsage;
} ENUM_PAGE_FILE_INFORMATION, *PENUM_PAGE_FILE_INFORMATION;

typedef BOOL (*PENUM_PAGE_FILE_CALLBACKW) (LPVOID pContext, PENUM_PAGE_FILE_INFORMATION pPageFileInfo, LPCWSTR lpFilename);

typedef BOOL (*PENUM_PAGE_FILE_CALLBACKA) (LPVOID pContext, PENUM_PAGE_FILE_INFORMATION pPageFileInfo, LPCSTR lpFilename);

BOOL
WINAPI
EnumPageFilesW (
    PENUM_PAGE_FILE_CALLBACKW pCallBackRoutine,
    LPVOID pContext
    );

BOOL
WINAPI
EnumPageFilesA (
    PENUM_PAGE_FILE_CALLBACKA pCallBackRoutine,
    LPVOID pContext
    );

#ifdef UNICODE
#define PENUM_PAGE_FILE_CALLBACK PENUM_PAGE_FILE_CALLBACKW
#define EnumPageFiles EnumPageFilesW
#else
#define PENUM_PAGE_FILE_CALLBACK PENUM_PAGE_FILE_CALLBACKA
#define EnumPageFiles EnumPageFilesA
#endif // !UNICODE

DWORD
WINAPI
GetProcessImageFileNameA(
    HANDLE hProcess,
    LPSTR lpImageFileName,
    DWORD nSize
    );

DWORD
WINAPI
GetProcessImageFileNameW(
    HANDLE hProcess,
    LPWSTR lpImageFileName,
    DWORD nSize
    );

#ifdef UNICODE
#define GetProcessImageFileName  GetProcessImageFileNameW
#else
#define GetProcessImageFileName  GetProcessImageFileNameA
#endif // !UNICODE

#ifdef __cplusplus
}
#endif

#endif
0
 

Author Comment

by:saifnawaz
Comment Utility
hi,
did that and it comes down to these 2 errors:

try error LNK2019: unresolved external symbol "int __stdcall EnumProcesses(unsigned long *,unsigned long,unsigned long *)" (?EnumProcesses@@YGHPAKK0@Z) referenced in function _main

try error LNK2019: unresolved external symbol "int __stdcall GetProcessMemoryInfo(void *,struct _PROCESS_MEMORY_COUNTERS *,unsigned long)" (?GetProcessMemoryInfo@@YGHPAXPAU_PROCESS_MEMORY_COUNTERS@@K@Z) referenced in function "void __cdecl PrintMemoryInfo(unsigned long)" (?PrintMemoryInfo@@YAXK@Z)
0
 
LVL 48

Expert Comment

by:AlexFM
Comment Utility
Add line

#pragma comment(lib,"psapi.lib")

in any place of your cpp file and try again.
0
 

Author Comment

by:saifnawaz
Comment Utility
did that, no change sorry
0
 

Author Comment

by:saifnawaz
Comment Utility
hi,
i set the linker path as C:\program files\microsoft visual studio .net\vc7\platformsdk\lib\Psapi.Lib

and the follwoing is the only error i get:
try fatal error LNK1104: cannot open file 'C:\program.obj'
0
 
LVL 48

Accepted Solution

by:
AlexFM earned 500 total points
Comment Utility
Remove linker path and try:

#pragma comment(lib,"C:\program files\microsoft visual studio .net\vc7\platformsdk\lib\psapi.lib")
0
 

Author Comment

by:saifnawaz
Comment Utility
1 error:
try fatal error LNK1104: cannot open file 'C:\program.obj'
0
 

Author Comment

by:saifnawaz
Comment Utility
hi,
it seem that there was an eror in mt visual studio.net compiler, the program is running fine.
Thanks for your help.
But how do i get the memory usage of the process in KB as in the taskmanager if windows from the information?
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Templates For Beginners Or How To Encourage The Compiler To Work For You Introduction This tutorial is targeted at the reader who is, perhaps, familiar with the basics of C++ but would prefer a little slower introduction to the more ad…
Introduction This article is the first in a series of articles about the C/C++ Visual Studio Express debugger.  It provides a quick start guide in using the debugger. Part 2 focuses on additional topics in breakpoints.  Lastly, Part 3 focuses on th…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now