動作環境
RAD Studio 10.2 Tokyo Update 2
関連
- c++ builder > アプリ使用メモリの確認 > GetProcessMemoryInfo()使用 > WorkingSetSize: DLLの使用分を含んだメモリ使用量
- c++ builder XE4 > psapi.hを使う > #include 以外に#pragma comment( lib, "psapi.lib" )を追加
XE4ではpaspi.hで定義されたGetProcessMemoryInfo()などを使うときにエラーが出ていた(上記リンク参照)。
そのエラー対策として#pragma comment(lib, "psapi.lib")
を追加するようにしていた。
10.2 Tokyoでは#pragma comment(lib, "psapi.lib")
を追加しなくても実行時エラーは出ないようだ。
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <psapi.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int LSize;
PPROCESS_MEMORY_COUNTERS LProcessMem;
int LMemUsed;
LSize = sizeof(PPROCESS_MEMORY_COUNTERS);
bool res = GetProcessMemoryInfo(GetCurrentProcess(), LProcessMem, LSize);
if (res) {
LMemUsed = LProcessMem->WorkingSetSize;
}
LMemUsed = LMemUsed / 1024; // to KB
LMemUsed = LMemUsed / 1024; // to MB
String msg = IntToStr(LMemUsed) + L" used";
OutputDebugString(msg.c_str());
}
//---------------------------------------------------------------------------