<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" >
  <channel>
  <title>Visual Studio C++のお勉強</title>
  <link>http://visualstudio05.blog.shinobi.jp/</link>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://visualstudio05.blog.shinobi.jp/RSS/" />
  <description>NINJA</description>
  <lastBuildDate>Wed, 23 Mar 2011 13:27:39 GMT</lastBuildDate>
  <language>ja</language>
  <copyright>© Ninja Tools Inc.</copyright>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />

    <item>
    <title>Ｓｔｒｉｎｇ^ を wchar に変換する</title>
    <description>
    <![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 />]]>
    </description>
    <category>.ＮＥＴ 文字列</category>
    <link>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</link>
    <pubDate>Wed, 23 Mar 2011 13:24:56 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/42</guid>
  </item>
    <item>
    <title>クラスを宣言し、メソッドを呼び出す</title>
    <description>
    <![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 />]]>
    </description>
    <category>.NET クラス</category>
    <link>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</link>
    <pubDate>Wed, 23 Mar 2011 12:59:40 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/41</guid>
  </item>
    <item>
    <title>Color構造体</title>
    <description>
    <![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 />]]>
    </description>
    <category>.ＮＥＴ 色</category>
    <link>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</link>
    <pubDate>Tue, 22 Mar 2011 15:26:06 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/40</guid>
  </item>
    <item>
    <title>.ＮＥＴ のオブジェクトの開放</title>
    <description>
    <![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 />]]>
    </description>
    <category>.NET 基本</category>
    <link>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</link>
    <pubDate>Tue, 22 Mar 2011 15:24:15 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/39</guid>
  </item>
    <item>
    <title>ネイティブコードを呼び出す</title>
    <description>
    <![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 />]]>
    </description>
    <category>.NET DLL</category>
    <link>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</link>
    <pubDate>Tue, 22 Mar 2011 15:07:14 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/38</guid>
  </item>
    <item>
    <title>String オブジェクトの配列</title>
    <description>
    <![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 />]]>
    </description>
    <category>.NET 基本</category>
    <link>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</link>
    <pubDate>Tue, 22 Mar 2011 14:44:05 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/37</guid>
  </item>
    <item>
    <title>.ＮＥＴ の自動ボックス化</title>
    <description>
    <![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 />]]>
    </description>
    <category>.NET 基本</category>
    <link>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</link>
    <pubDate>Tue, 22 Mar 2011 14:41:28 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/36</guid>
  </item>
    <item>
    <title>ヌルポインタの扱い</title>
    <description>
    <![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 />]]>
    </description>
    <category>.NET 基本</category>
    <link>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</link>
    <pubDate>Tue, 22 Mar 2011 14:05:58 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/35</guid>
  </item>
    <item>
    <title>コントロール変数が不要</title>
    <description>
    <![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 />]]>
    </description>
    <category>.NET 基本</category>
    <link>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</link>
    <pubDate>Tue, 22 Mar 2011 13:54:30 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/34</guid>
  </item>
    <item>
    <title>ＢＭＰで保存</title>
    <description>
    <![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 />]]>
    </description>
    <category>画像</category>
    <link>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</link>
    <pubDate>Mon, 21 Mar 2011 07:43:51 GMT</pubDate>
    <guid isPermaLink="false">visualstudio05.blog.shinobi.jp://entry/33</guid>
  </item>

    </channel>
</rss>