忍者ブログ
NINJA
[1] [2] [3] [4] [5] [6] [7]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Stringオブジェクトの配列は以下のようにコードを書くことが可能である。

array<String^>^ ss = gcnew array<String^>(10);

ss[0] = "文字列ABC"



10個の配列が作成される。

PR
自動ボックス化(ボクシング)とは、

Format()関数で数値を埋め込む処理。

VS++ .NET 2003 の書き方

ss = String::Format( "dtは{0}です",  __box( dt )  );


VS++ .NET 2005の書き方

ss = String::Format( "dtは{0}です", dt );



マネージ形式の場合、ヌルポインタを示すのは、以下のコードで行う。

nullptr

伝統的な「NULL」ではないので、注意が必要。

マネージ形式では、自動ボックス化という機能を最小したため、

値0は「ボクシングされたInt32型の値0」に変更される場合があるためらしい。


◇ マネージ形式のヌルポインタ

nullptr

◇ ネイティブ形式のヌルポインタ

NULL
・ネイティブ形式では、以下のコードにて「コントロール変数」を宣言していた。

 CEdit* myEdit = (CEdit*)GetDlgItem( IDC_EDIT1 );
myEdit->SetWindowText("文字列");


・マネージ形式のでは、以下のコードのみで利用することが可能。

 myEdit->Text = "文字列"

ネイティブ形式でも、コントロール変数を用意してしまえば、ひとつのコードのみで済むが、
マネージ形式では、コントロール変数を用意する必要がなく、ひとつのコードのみで対応可能。

BMPで保存する。

DIBコード:file.visualstudio05.blog.shinobi.jp/SaveDIB.zip

BOOL xxxxxx::SaveBMPFile( CString FileName, BITMAP sBitmap, BYTE* pData )
{
    CImage    img;
    //BYTE*    pImg;
    //DWORD    dwImgSize;

    int iDiff = 0;

    // DIB作成
    static BITMAPINFO bmpInfo;

    if( sBitmap.bmWidth * 3 % 4 ){
        iDiff = sBitmap.bmWidth * 3 + ( 4 - sBitmap.bmWidth * 3 % 4 );
    }
    else {
        iDiff = sBitmap.bmWidth * 3;
    }

    BYTE*    pBuff;
    int        iBuffSize = iDiff * sBitmap.bmHeight;
   
    if( !(pBuff = (BYTE*)calloc( iBuffSize + 1, sizeof(BYTE) ))){
        // メモリの確保を失敗
        return FALSE;
    }

    bmpInfo.bmiHeader.biSize        = sizeof( BITMAPINFOHEADER );
    bmpInfo.bmiHeader.biWidth        = sBitmap.bmWidth;
    bmpInfo.bmiHeader.biHeight        = sBitmap.bmHeight;
    bmpInfo.bmiHeader.biPlanes        = 1;
    bmpInfo.bmiHeader.biBitCount    = 24;
    bmpInfo.bmiHeader.biCompression    = BI_RGB;

    int n = 0;
    int j = 0;
    int iCnt = 0;
    for( int i = sBitmap.bmHeight - 1; i >= 0; i-- ){
        j = i * sBitmap.bmWidth * 3;
        for( int m = 0; m < sBitmap.bmWidth; m++ ){
           
            pBuff[ n + 0 ] = pData[ j + 0 ];
            pBuff[ n + 1 ] = pData[ j + 1 ];
            pBuff[ n + 2 ] = pData[ j + 2 ];

            n += 3;
            j += 3;
        }
        iCnt++;
        n = iCnt * iDiff;

    }

    SaveDIB( this->CStringToLptstr( FileName) , pBuff, &bmpInfo );

    free( pBuff );

    return TRUE;
}

カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
フリーエリア
最新CM
最新TB
プロフィール
HN:
No Name Ninja
性別:
非公開
バーコード
ブログ内検索
アーカイブ
P R
Powered by ニンジャブログ  Designed by ゆきぱんだ
Copyright (c) Visual Studio C++のお勉強 All Rights Reserved
忍者ブログ / [PR]