CPPhttp://blogs.wankuma.com/tocchann/category/2288.aspxCPPとっちゃんja-JP.Text Version 0.95.2004.102とっちゃんC++/WinRThttp://blogs.wankuma.com/tocchann/archive/2016/10/14/538337.aspx2016年10月14日 12:25:00 GMThttp://blogs.wankuma.com/tocchann/archive/2016/10/14/538337.aspxhttp://blogs.wankuma.com/tocchann/comments/538337.aspxhttp://blogs.wankuma.com/tocchann/archive/2016/10/14/538337.aspx#Feedback0http://blogs.wankuma.com/tocchann/comments/commentRss/538337.aspx
http://blogs.wankuma.com/tocchann/services/trackbacks/538337.aspx<p><a title="C++/WinRT Available on GitHub" href="https://blogs.msdn.microsoft.com/vcblog/2016/10/13/cwinrt-available-on-github/">C++/WinRT Available on GitHub</a></p> <p>なんていうものが出てきました。Native の C++ プロジェクトで、Windows Runtime API を使うためのライブラリらしいです。</p> <p>これってば、Desktop Bridge アプリで使ったらUWPAPIも結構使えるんじゃないか?という気がする。。。もちろん、気がするだけで試してはいませんw</p> <p>最も UWP API は C++/CX からじゃないと使えないならダメなんだけどねw</p> <p>落としてないのでこれ以上はよくわかってませんが、VS2015 Update 3, VS"15" Preview などで使えるらしいです。</p><img src ="http://blogs.wankuma.com/tocchann/aggbug/538337.aspx" width = "1" height = "1" />とっちゃんDeveloping for Windows 10 with Visual C++ 2015http://blogs.wankuma.com/tocchann/archive/2015/07/30/520135.aspx2015年7月30日 12:01:00 GMThttp://blogs.wankuma.com/tocchann/archive/2015/07/30/520135.aspxhttp://blogs.wankuma.com/tocchann/comments/520135.aspxhttp://blogs.wankuma.com/tocchann/archive/2015/07/30/520135.aspx#Feedback0http://blogs.wankuma.com/tocchann/comments/commentRss/520135.aspx
http://blogs.wankuma.com/tocchann/services/trackbacks/520135.aspx<a title="Developing for Windows 10 with Visual C++ 2015" href="http://blogs.msdn.com/b/vcblog/archive/2015/07/29/developing-for-windows-10-with-visual-c-2015.aspx">Developing for Windows 10 with Visual C++ 2015</a> <p>.NET Framework とか使わないしー!という人も必読です。</p> <p>ぶっちゃけ、こんなの知らねーよ!で通じるのは、Windows 10 には移行しませんという今月で廃業するベンダーさんくらいです。</p><img src ="http://blogs.wankuma.com/tocchann/aggbug/520135.aspx" width = "1" height = "1" />とっちゃんセットアップの設定が変わってるので。。。http://blogs.wankuma.com/tocchann/archive/2015/07/27/520046.aspx2015年7月27日 13:43:00 GMThttp://blogs.wankuma.com/tocchann/archive/2015/07/27/520046.aspxhttp://blogs.wankuma.com/tocchann/comments/520046.aspxhttp://blogs.wankuma.com/tocchann/archive/2015/07/27/520046.aspx#Feedback6http://blogs.wankuma.com/tocchann/comments/commentRss/520046.aspx
http://blogs.wankuma.com/tocchann/services/trackbacks/520046.aspx<p><a title="Setup Changes in Visual Studio 2015 Affecting C++ Developers" href="http://blogs.msdn.com/b/vcblog/archive/2015/07/24/setup-changes-in-visual-studio-2015-affecting-c-developers.aspx" target="_blank">Setup Changes in Visual Studio 2015 Affecting C++ Developers</a></p> <p>C++ はよりプロフェッショナルな色合いが濃くなるようですね。</p> <p>Typical(お手軽版)では、インストールされないんだって。</p> <p>でも、既存のプロジェクトを開いたり、新規に作成しようとすると、インストールしますかー?って聞いてくるそうです。</p> <p>&nbsp;</p> <p>まぁ、デフォルトはカスタムインストールなのは、1.0の昔から変わらないので問題ないw<ちが!</p><img src ="http://blogs.wankuma.com/tocchann/aggbug/520046.aspx" width = "1" height = "1" />とっちゃん[VC++] VS2015 Preview のC++機能一覧http://blogs.wankuma.com/tocchann/archive/2014/11/19/496330.aspx2014年11月19日 11:02:00 GMThttp://blogs.wankuma.com/tocchann/archive/2014/11/19/496330.aspxhttp://blogs.wankuma.com/tocchann/comments/496330.aspxhttp://blogs.wankuma.com/tocchann/archive/2014/11/19/496330.aspx#Feedback0http://blogs.wankuma.com/tocchann/comments/commentRss/496330.aspx
http://blogs.wankuma.com/tocchann/services/trackbacks/496330.aspx<p>ネタ元:<a title="C++11/14/17 Features In VS 2015 Preview" href="http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx" target="_blank">C++11/14/17 Features In VS 2015 Preview</a></p> <p>C++11/14/17 のいろんな機能の対応表です。</p> <p>それ以上でもそれ以下でもないw</p><img src ="http://blogs.wankuma.com/tocchann/aggbug/496330.aspx" width = "1" height = "1" />とっちゃん[C++/CLI]フォルダ選択ダイアログ(コアルーチン)http://blogs.wankuma.com/tocchann/archive/2013/04/22/327859.aspx2013年4月22日 21:50:00 GMThttp://blogs.wankuma.com/tocchann/archive/2013/04/22/327859.aspxhttp://blogs.wankuma.com/tocchann/comments/327859.aspxhttp://blogs.wankuma.com/tocchann/archive/2013/04/22/327859.aspx#Feedback344http://blogs.wankuma.com/tocchann/comments/commentRss/327859.aspx
http://blogs.wankuma.com/tocchann/services/trackbacks/327859.aspx<p>Vista からフォルダ選択ダイアログが変わりました。</p> <p>大半のソフトは、古い形式を使っていますが、今後は少しずつXP非対応アプリも増えてくると思うので、じわじわと新しいフォルダ選択ダイアログが増えていくでしょう。実際 Visual Studio は何気に新しいものを使ってますし。。。</p> <p>が、.NET Framework はまだ対応していません。ということで、だれでも使えるように、コアルーチンだけここに張り付けておきます。</p> <p>作り方は、</p> <ol> <li>C++/CLIで、クラスライブラリプロジェクトを作成する。</li> <li>下記のコードを PickupFolderDialogCore.h と PickupFolderDialogCore.cpp で保存する。</li> <li>プロジェクトをビルドする。</li></ol> <p>以上です。WPFやWindows Forms からの呼出しは、それぞれでラッパーを書いたほうがいいでしょう。</p> <p>理由はウィンドウハンドルの取り方がそれぞれで微妙に異なるからです。</p> <p>説明が必要になるほど複雑なコードじゃないので解説はなし。</p> <p>&nbsp;</p> <p>ということでヘッダー</p> <div id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3c6e98b2-4d74-4c65-bc26-5cf39c550aad" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"><pre name="code" class="c">using namespace System; namespace Wankuma { public ref class PickupFolderDialogCore { public: PickupFolderDialogCore(); property System::String^ SelectedPath{ System::String^ get(); void set( System::String^ value ); } bool ShowDialog( System::IntPtr ownerWindow ); private: System::String^ m_selectedPath; }; } </pre></div> <p>続いてソース</p> <div id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:57baa6ac-310c-4701-9be5-500dddd97b2f" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"><pre name="code" class="c">// class PickupFolderDialogCore #include "stdafx.h" #define STRICT #include &lt;ShObjIdl.h&gt; #include &lt;comdef.h&gt; #include &lt;vcclr.h&gt; #pragma comment( lib, "user32.lib" ) #pragma comment( lib, "shell32.lib" ) _COM_SMARTPTR_TYPEDEF(IFileOpenDialog,__uuidof(IFileOpenDialog)); _COM_SMARTPTR_TYPEDEF(IShellItem,__uuidof(IShellItem)); static HWND APIENTRY GetSafeOwnerWindow( HWND hwndOwner ) { if( hwndOwner != nullptr &amp;&amp; !IsWindow( hwndOwner ) ){ hwndOwner = nullptr; } if( hwndOwner == nullptr ){ hwndOwner = GetForegroundWindow(); } HWND hwndParent = hwndOwner; while( hwndParent != nullptr ){ hwndOwner = hwndParent; hwndParent = GetParent( hwndOwner ); } if( hwndOwner != nullptr ){ hwndOwner = GetLastActivePopup( hwndOwner ); } return hwndOwner; } #include "PickupFolderDialogCore.h" Wankuma::PickupFolderDialogCore::PickupFolderDialogCore() { } String^ Wankuma::PickupFolderDialogCore::SelectedPath::get() { return m_selectedPath; } void Wankuma::PickupFolderDialogCore::SelectedPath::set( String^ value ) { m_selectedPath = value; } bool Wankuma::PickupFolderDialogCore::ShowDialog( IntPtr ownerWindow ) { HWND hwndOwner = GetSafeOwnerWindow( static_cast&lt;HWND&gt;( ownerWindow.ToPointer() ) ); IFileOpenDialogPtr dlg( __uuidof(FileOpenDialog) ); dlg-&gt;SetOptions( FOS_PICKFOLDERS|FOS_FORCEFILESYSTEM ); if( String::IsNullOrWhiteSpace( m_selectedPath ) == false ){ cli::pin_ptr&lt;const System::Char&gt; folder = PtrToStringChars( SelectedPath ); IShellItemPtr item; if( SUCCEEDED( SHCreateItemFromParsingName( folder, nullptr, IID_PPV_ARGS( &amp;item ) ) ) ){ dlg-&gt;SetFolder( item ); } } HRESULT hRes = dlg-&gt;Show( hwndOwner ); if( SUCCEEDED( hRes ) ){ IShellItemPtr item; if( SUCCEEDED( (hRes=dlg-&gt;GetResult( &amp;item )) ) ){ wchar_t* folder = nullptr; item-&gt;GetDisplayName( SIGDN_FILESYSPATH, &amp;folder ); SelectedPath = gcnew System::String( folder ); CoTaskMemFree( folder ); return true; } } return false; } </pre></div><img src ="http://blogs.wankuma.com/tocchann/aggbug/327859.aspx" width = "1" height = "1" />

AltStyle によって変換されたページ (->オリジナル) /