トップ回答者
Windowsフォームアプリケーション de

質問
-
初心者なのですが、
Visual Studio 2008 でフォーム(Windowsフォームアプリケーション)を作成しシステム稼働時間を
取得したいのですが、エラーが帰ってきてコンパイルできません。
GetTickCount()は、Windowsフォームアプリケーションで利用できないのでしょうか?
コード
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
double dwStart = GetTickCount();
}エラー
error C3861: 'GetTickCount': 識別子が見つかりませんでした
それとも、.NETの環境(Windowsフォームアプリケーション)では、API(SDK?)は何か定義して置かないとダメなの?
回答
すべての返信
-
#include "Windows.h"
をコードの先頭記載したらコンパイル通りました。。。すいません。
でも、ひらぽん様のEnvironment::TickCount の方が正解のようですのでそちらを使うようにします。
ちなみに、#include "Windows.h" を記載する場所って、下記の場所でよいのでしょうかね???
#pragma once
#include "Windows.h"
namespace test002a { -
もし、何らかの時間を計測したいのであれば、System.Diagnostics.Stopwatch クラスを使うとよいと思います。
そうではなく純粋に起動してからの経過時間が知りたいのであれば、ひらぽんさんが書いてますが、EnvironmentクラスのTickCount プロパティでも同じ値が取得できます(signed と unsigned の違いはありますが)。
そうではなく、GetTickCount 以外にもAPIを使いたいということであれば、利用したいか所で #include <windows.h> をインクルードすれば使えます(利用方法は、NativeのC++と全く同じ)。
リンクエラーが出た場合は、MSDNライブラリで呼び出しているAPIのリファレンスを見て、必要なライブラリをリンクするようにしてください。
わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/