<?xml version="1.0" encoding="UTF-8" ?>
<feed xml:lang="ja" xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">
  <title type="text">Visual Studio C++のお勉強</title>
  <subtitle type="html">NINJA</subtitle>
  <link rel="self" type="application/atom+xml" href="http://visualstudio05.blog.shinobi.jp/atom"/>
  <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/"/>
  <updated>2011-03-21T09:58:08+09:00</updated>
  <author><name>No Name Ninja</name></author>
  <generator uri="//www.ninja.co.jp/blog/" version="0.9">忍者ブログ</generator>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/42</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.%EF%BD%8E%EF%BD%85%EF%BD%94%20%E6%96%87%E5%AD%97%E5%88%97/%EF%BD%93%EF%BD%94%EF%BD%92%EF%BD%89%EF%BD%8E%EF%BD%87-%20%E3%82%92%20wchar%20%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B" />
    <published>2011-03-23T22:24:56+09:00</published> 
    <updated>2011-03-23T22:24:56+09:00</updated> 
    <category term=".ＮＥＴ 文字列" label=".ＮＥＴ 文字列" />
    <title>Ｓｔｒｉｎｇ^ を wchar に変換する</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[Formでは、Ｓｔｒｉｎｇ^ を使用すれば良いが、APIなどではwchar型が使われるため、文字列の型が異なる。<br />
<br />
そこで、文字列の変換を行う。<br />
<br />
1．　ヘッダーファイルをインクルードする。<br />
<br />
<font color="#ff0000">#include &quot;vcclr.h&quot;</font><br />
<br />
2．　変換コードを利用する。<br />
<font color="#ff0000"><br />
pin_ptr&lt;const wchar_t&gt; wch = PtrToStringChars(ss);</font><br />
<br />
<br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/41</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.net%20%E3%82%AF%E3%83%A9%E3%82%B9/%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%92%E5%AE%A3%E8%A8%80%E3%81%97%E3%80%81%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99" />
    <published>2011-03-23T21:59:40+09:00</published> 
    <updated>2011-03-23T21:59:40+09:00</updated> 
    <category term=".NET クラス" label=".NET クラス" />
    <title>クラスを宣言し、メソッドを呼び出す</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[Visual C++ の MFCとは若干異なる。<br />
<br />
1．　ソリューションエクスプローラのサブメニューから、クラスを追加する。（ＭＦＣと同様）<br />
<br />
2．　「C++　クラス」を選択する。<br />
<br />
以下、必要に応じて対応<br />
<br />
3．　ヘッダーファイルに、クラスの外で「using namespace xxxxx」を追加<br />
<br />
4．　Dllからネイティブコードを呼び出す場合、exturn &rarr; static に変更する<br />
<br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/40</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.%EF%BD%8E%EF%BD%85%EF%BD%94%20%E8%89%B2/color%E6%A7%8B%E9%80%A0%E4%BD%93" />
    <published>2011-03-23T00:26:06+09:00</published> 
    <updated>2011-03-23T00:26:06+09:00</updated> 
    <category term=".ＮＥＴ 色" label=".ＮＥＴ 色" />
    <title>Color構造体</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[<br />
色を指定するための構造体。<br />
<br />
ＲＧＢやシステムの色を取得することが可能。<br />
<br />
<b>名前空間:</b> System.Drawing<br />
<br />
<font color="#ff0000"><br />
<strong><font color="#000000">例　：　Color構造体に、ＲＧＢで指定した色を設定する。</font></strong><br />
Color　myClr;<br />
<br />
myClr&nbsp; =&nbsp;Color::FromArgb( 0, 0, 0 );<br />
</font><br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/39</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.net%20%E5%9F%BA%E6%9C%AC/.%EF%BD%8E%EF%BD%85%EF%BD%94%20%E3%81%AE%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E9%96%8B%E6%94%BE" />
    <published>2011-03-23T00:24:15+09:00</published> 
    <updated>2011-03-23T00:24:15+09:00</updated> 
    <category term=".NET 基本" label=".NET 基本" />
    <title>.ＮＥＴ のオブジェクトの開放</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[オブジェクトの開放は、以下のコードで行う。<br />
<br />
VC++ .NET 2003<br />
<br />
<font color="#ff0000">Drawing::Font* myFont&nbsp; =&nbsp;new&nbsp; Drawing::Font( ～ 省略 ～ );<br />
<br />
myFont-&gt;Dispose();</font><br />
<br />
<br />
VC++ .NET 2005<br />
<br />
<font color="#ff0000">Drawing::Font* myFont&nbsp; =&nbsp;gcnew&nbsp; Drawing::Font( ～ 省略 ～ );<br />
<br />
delete myFont;</font><br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/38</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.net%20dll/%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99" />
    <published>2011-03-23T00:07:14+09:00</published> 
    <updated>2011-03-23T00:07:14+09:00</updated> 
    <category term=".NET DLL" label=".NET DLL" />
    <title>ネイティブコードを呼び出す</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[過去の資源を使うためには、ＤＬＬを利用するのがよいが、<br />
<br />
.NETでは以下の方法にてネイティブコードを呼び出すことが可能である。<br />
<font color="#ff0000"><br />
// DllImport用名前空間<br />
using namespace System::Runtime::InteripServices;<br />
<br />
// dllコードを利用可能にする<br />
[DllImport(&quot;user32.Dll&quot;)]<br />
<br />
// 利用する関数のプロトタイプ<br />
extern bool MessageBeep(&nbsp;unsigned int uType );</font><br />
<br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/37</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.net%20%E5%9F%BA%E6%9C%AC/string%20%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E9%85%8D%E5%88%97" />
    <published>2011-03-22T23:44:05+09:00</published> 
    <updated>2011-03-22T23:44:05+09:00</updated> 
    <category term=".NET 基本" label=".NET 基本" />
    <title>String オブジェクトの配列</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[Stringオブジェクトの配列は以下のようにコードを書くことが可能である。<br />
<br />
<font color="#ff0000">array&lt;String^&gt;^ ss =&nbsp;gcnew array&lt;String^&gt;(10);<br />
<br />
ss[0]　=　&quot;文字列ＡＢＣ&quot;</font><br />
<br />
<br />
10個の配列が作成される。<br />
<br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/36</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.net%20%E5%9F%BA%E6%9C%AC/.%EF%BD%8E%EF%BD%85%EF%BD%94%20%E3%81%AE%E8%87%AA%E5%8B%95%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E5%8C%96" />
    <published>2011-03-22T23:41:28+09:00</published> 
    <updated>2011-03-22T23:41:28+09:00</updated> 
    <category term=".NET 基本" label=".NET 基本" />
    <title>.ＮＥＴ の自動ボックス化</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[自動ボックス化（ボクシング）とは、<br />
<br />
Ｆｏｒｍａｔ（）関数で数値を埋め込む処理。<br />
<br />
ＶＳ++ .NET 2003 の書き方<br />
<font color="#ff0000"><br />
ss　=　String::Format( &quot;dtは｛0｝です&quot;,&nbsp; __box( dt&nbsp;)&nbsp; );</font><br />
<br />
VS++ .NET 2005の書き方<br />
<br />
<font color="#ff0000">ss　=　String::Format( &quot;dtは{0}です&quot;, dt );</font><br />
<br />
<br />
<br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/35</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.net%20%E5%9F%BA%E6%9C%AC/%E3%83%8C%E3%83%AB%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E3%81%AE%E6%89%B1%E3%81%84" />
    <published>2011-03-22T23:05:58+09:00</published> 
    <updated>2011-03-22T23:05:58+09:00</updated> 
    <category term=".NET 基本" label=".NET 基本" />
    <title>ヌルポインタの扱い</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[マネージ形式の場合、ヌルポインタを示すのは、以下のコードで行う。<br />
<br />
<font color="#ff0000">nullptr</font><br />
<br />
伝統的な「NULL」ではないので、注意が必要。<br />
<br />
マネージ形式では、自動ボックス化という機能を最小したため、<br />
<br />
値0は「ボクシングされたＩｎｔ32型の値0」に変更される場合があるためらしい。<br />
<br />
<br />
◇　マネージ形式のヌルポインタ<br />
<br />
nullptr<br />
<br />
◇　ネイティブ形式のヌルポインタ<br />
<br />
NULL<br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/34</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/.net%20%E5%9F%BA%E6%9C%AC/%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E5%A4%89%E6%95%B0%E3%81%8C%E4%B8%8D%E8%A6%81" />
    <published>2011-03-22T22:54:30+09:00</published> 
    <updated>2011-03-22T22:54:30+09:00</updated> 
    <category term=".NET 基本" label=".NET 基本" />
    <title>コントロール変数が不要</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[・ネイティブ形式では、以下のコードにて「コントロール変数」を宣言していた。<br />
<br />
<font color="#ff0000">　CEdit*　myEdit =&nbsp;(CEdit*)GetDlgItem( IDC_EDIT1 );<br />
myEdit-&gt;SetWindowText(&quot;文字列&quot;);</font><br />
<br />
・マネージ形式のでは、以下のコードのみで利用することが可能。<br />
<br />
<font color="#ff0000">　myEdit-&gt;Text =&nbsp;&quot;文字列&quot;</font><br />
<br />
ネイティブ形式でも、コントロール変数を用意してしまえば、ひとつのコードのみで済むが、<br />
マネージ形式では、コントロール変数を用意する必要がなく、ひとつのコードのみで対応可能。<br />
<br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
  <entry>
    <id>visualstudio05.blog.shinobi.jp://entry/33</id>
    <link rel="alternate" type="text/html" href="http://visualstudio05.blog.shinobi.jp/%E7%94%BB%E5%83%8F/%EF%BD%82%EF%BD%8D%EF%BD%90%E3%81%A7%E4%BF%9D%E5%AD%98" />
    <published>2011-03-21T16:43:51+09:00</published> 
    <updated>2011-03-21T16:43:51+09:00</updated> 
    <category term="画像" label="画像" />
    <title>ＢＭＰで保存</title>
    <content mode="escaped" type="text/html" xml:lang="utf-8"> 
      <![CDATA[ＢＭＰで保存する。<br />
<br />
DIBコード：<a href="//visualstudio05.blog.shinobi.jp/File/SaveDIB.zip">file.visualstudio05.blog.shinobi.jp/SaveDIB.zip</a><br />
<br />
<font color="#ff0000">BOOL xxxxxx::SaveBMPFile( CString FileName, BITMAP sBitmap, BYTE* pData )<br />
{<br />
&nbsp;&nbsp;&nbsp; CImage&nbsp;&nbsp;&nbsp; img;<br />
&nbsp;&nbsp;&nbsp; //BYTE*&nbsp;&nbsp;&nbsp; pImg;<br />
&nbsp;&nbsp;&nbsp; //DWORD&nbsp;&nbsp;&nbsp; dwImgSize;<br />
<br />
&nbsp;&nbsp;&nbsp; int iDiff = 0;<br />
<br />
&nbsp;&nbsp;&nbsp; // DIB作成<br />
&nbsp;&nbsp;&nbsp; static BITMAPINFO bmpInfo;<br />
<br />
&nbsp;&nbsp;&nbsp; if( sBitmap.bmWidth * 3 % 4 ){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iDiff = sBitmap.bmWidth * 3 + ( 4 - sBitmap.bmWidth * 3 % 4 );<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iDiff = sBitmap.bmWidth * 3;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; BYTE*&nbsp;&nbsp;&nbsp; pBuff;<br />
&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iBuffSize = iDiff * sBitmap.bmHeight;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; if( !(pBuff = (BYTE*)calloc( iBuffSize + 1, sizeof(BYTE) ))){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // メモリの確保を失敗<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return FALSE;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; bmpInfo.bmiHeader.biSize&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; = sizeof( BITMAPINFOHEADER );<br />
&nbsp;&nbsp;&nbsp; bmpInfo.bmiHeader.biWidth&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; = sBitmap.bmWidth;<br />
&nbsp;&nbsp;&nbsp; bmpInfo.bmiHeader.biHeight&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; = sBitmap.bmHeight;<br />
&nbsp;&nbsp;&nbsp; bmpInfo.bmiHeader.biPlanes&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; = 1;<br />
&nbsp;&nbsp;&nbsp; bmpInfo.bmiHeader.biBitCount&nbsp;&nbsp;&nbsp; = 24;<br />
&nbsp;&nbsp;&nbsp; bmpInfo.bmiHeader.biCompression&nbsp;&nbsp;&nbsp; = BI_RGB;<br />
<br />
&nbsp;&nbsp;&nbsp; int n = 0;<br />
&nbsp;&nbsp;&nbsp; int j = 0;<br />
&nbsp;&nbsp;&nbsp; int iCnt = 0;<br />
&nbsp;&nbsp;&nbsp; for( int i = sBitmap.bmHeight - 1; i &gt;= 0; i-- ){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; j = i * sBitmap.bmWidth * 3;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for( int m = 0; m &lt; sBitmap.bmWidth; m++ ){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pBuff[ n + 0 ] = pData[ j + 0 ];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pBuff[ n + 1 ] = pData[ j + 1 ];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pBuff[ n + 2 ] = pData[ j + 2 ];<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n += 3;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; j += 3;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iCnt++;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n = iCnt * iDiff;<br />
<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; SaveDIB( this-&gt;CStringToLptstr( FileName) , pBuff, &amp;bmpInfo );<br />
<br />
&nbsp;&nbsp;&nbsp; free( pBuff );<br />
<br />
&nbsp;&nbsp;&nbsp; return TRUE;<br />
}</font><br />]]> 
    </content>
    <author>
            <name>No Name Ninja</name>
        </author>
  </entry>
</feed>