|ハイブリッドOS|File System|ARM|Android|Java|制御システム|オープンシステム

 

VC

 
フォーム
 
ファイルの作成日時について
2013-09-26
 //-------------------------------------------------------------------- 
//    ファイルの作成日を取得し、現在日と比較する
//
//        using namespace System::IO;
//        の宣言追加が必要です。
//--------------------------------------------------------------------

    int day_dist;
    TimeSpan ts;
    DateTime now_daytime;
    DateTime file_daytime;
 

    // 対象FileのFullPath
    String ^path_str = gcnew String ("C:\\TEMP\\TestData.txt");

    // File 作成日取得
    FileInfo ^chkfile = gcnew FileInfo(path_str);
    file_daytime = chkfile->CreationTime;

    // 現在日取得、差を計算
    now_daytime = DateTime::Now;
    ts = now_daytime - file_daytime;

    day_dist = (int)ts.TotalDays;
    if(day_dist>7)
        MessageBox::Show("7日すぎました。", "msg");

(WindowsアプリケーションForm (Framework3.5) VS2008 VC++環境でのお話しです。)
 
String→char、char→String変換方法
2013-09-07

using namespace System::Runtime::InteropServices;
の宣言追加が必要です。


    int leng;
    char *cptr;
    char buf[64];
    String ^str1;
    String ^str2;
    String ^str3;


    leng = 0;
    str1 = gcnew String("string_moji");
    str2 = gcnew String("");


    // (String*) -> char
    memset(buf, 0x00, sizeof(buf));
    cptr = (char *)(void *)Marshal::StringToHGlobalAnsi(str1);
    leng = strlen(cptr);
    if(leng < sizeof(buf) )
        strncpy(buf, cptr, leng);
    else
        strncpy(buf, cptr, (sizeof(buf)-1));
    Marshal::FreeHGlobal((System::IntPtr)cptr);    //アンマネージ メモリから割り当てられたメモリを解放


    // char -> String
    str2 = Marshal::PtrToStringAnsi((System::IntPtr)buf);
    str3 = gcnew String(buf);

 


( WindowsアプリケーションForm (Framework3.5) VS2008 VC++環境でのお話しです。 )

 
Buttonコントロールを一度に許可/禁止する。
2013-09-02
Form に buttonコントロールが配置されているとき、全部一度に 許可、禁止結構面倒なので、以下のようにすると結構簡単にできます。 
他にも方法があるかもしれませんが...

button1〜6 まで許可する場合
通常記述
    button1->Enabled = true;
    button2->Enabled = true;
    button3->Enabled = true;
    button4->Enabled = true;
    button5->Enabled = true;
    button6->Enabled = true;

一度に許可する方法
    array ^btns;
    int i;
    btns = gcnew array(6);
    btns[0] = this->button1;
    btns[1] = this->button2;
    btns[2] = this->button3;
    btns[3] = this->button4;
    btns[4] = this->button5;
    btns[5] = this->button6;

    for(i=0; i<6; i++)                    // (1)
        btns[i]->Enabled = true;    //

1回、各ボタンをbtns[] に設定する記述は必要ですが

1度設定すれば
あとは、(1)の方法ですみます。
4