kkamegawa's weblog

Visual Studio,TFS,ALM関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

C++

Python 2.7.xをWindowsでビルドする

たまにしかやらないので、忘れてしまうから自分用にメモ。 必要なもの Visual Studio 2008 Active Perl TortoiseSVN(コマンドラインツールも必ずインストールします) OSはVisual Studio 2008がサポートされているものならいいはずです。XP世代のOSを使おうと…

ICU4C 58.2のNuGetパッケージ公開

www.nuget.org 年の瀬ですが、一人アドベントカレンダー書いていて全く手を付けられなかったICU4C 58.2に対応したNuGetパッケージを公開しました。 ソースというか、パッケージはGitHubで公開しています。57_1のパッケージに含まれるバイナリはICU4C_571とい…

ICU4CのNuGetパッケージを公開しました

今公開したばかりなので、まだ出てこないかもしれませんが、ICU4C 57_1のNuGetパッケージを公開しました。 site.icu-project.org github.com www.nuget.org 55_1はNuGetパッケージを作ってくれている方がいたのですが、最新の57_1はまだだったので、まぁいい…

VSTS/TFSでC++アプリケーションのビルド用テンプレートを変更する

はじめに VSTSでビルドを行うとき、いくつかのプロジェクトタイプではビルドテンプレートが用意されています。新規作成するときにVisual Studioというテンプレートがあるのですが、これは.NETプロジェクト用になっていて、いくつかのビルドステップに不都合…

ネイティブの型情報をリッチに表示するnatvisの強化

これはVisual Studio Advent Calendar 2015の12日目の記事です。 qiita.com Visual Studio 2015でC++アプリケーションをデバッグすると、デバッガに構造体の情報が表示されます。自分で作ったアプリケーションや普通の構造体であればデバッガはPDBを参照すれ…

構造化並列プログラミング

構造化並列プログラミング―効率良い計算を行うためのパターン作者: マイケル・マックール,菅原清文,エクセルソフト出版社/メーカー: カットシステム発売日: 2013/02メディア: 単行本この商品を含むブログ (7件) を見るひょんなことから書籍一冊もらえる機会…

Visual Studio 2012 C++の単体テストのTIPS

Visual Studio 2012の新機能の一つにC++の単体テスト機能があります。今までもC++の単体テストをサポートするソフトはCUnitをはじめいくつかありましたが、Visual Studioにもやっとというか、とうとうというか、搭載されました。επιστημηさんが、基本的な使…

こみゅぷらすイベント終わりました&資料公開

Community Launch 2012 - COMU+ お忙しい中参加していただいた皆様、登壇していただいた皆様ありがとうございました。私の資料はここで公開しています。 Visual Studio 2012 Native Debugger Feature from Kazushi Kamegawa STLを使ったのがVisual Studio .N…

8/4イベント資料チラ見せ

とりあえずこんな感じで。もうちょっと中身見せようと思ったのですが、まだ変わる可能性がありますので(^^;。GPUに関しては面白いデバッグ機能が増えたので、紹介したいですね。ただ、リモート環境がないのでライブデモではなくて、あっても動画になる可能性…

Visual Studio Hotfix ListsにKB2722312を追加

Visual Studio 2010 SP1 Hotfix Lists 久しぶりの追加ですね。Visual Studio 2010 SP1用のKB2722312を追加しました。例によってKBのページはまだないみたい。 vsdebug.dll!CDebugger::GetSourceFileFromDocumentContextのあたりで例外が出る問題を修正したそ…

Visual Studio Hotfix ListsにKB2685649を追加

Visual Studio Hotfix Lists for Visual Studio 2010 SP1 久しぶりにKB2685649(例によってKBページなし)を追加しました。C1001 Internal Compiler Errorの対応だそうです。 致命的なエラー C1001 出たことある人はどうぞ。

Visual Studio 11フィードバック3件

探せばまだまだあるもんですねー。文字切れ、あれ?と思うような挙動。 汎用C++クラスウィザードダイアログボックス内の文字が切れている | Microsoft Connect 汎用C++クラスウィザード内の文字切れ。昨日書いたやつもそうですが、なんで上の1dotがつぶれて…

Visual Studio 11 MFCアプリケーションウィザードのフィードバック二件

しょうもないといえば、しょうもないのですが、二件見つけてしまいました。 MFCアプリケーションウィザードダイアログの文字が切れている | Microsoft Connect これはたぶんパッと見気づかないかもしれません。上の文字が切れてます。切れっぷりがあれなので…

Windows SDKに含まれなくなったツール

Windows 8 用 Windows ソフトウェア開発キット (Windows SDK) – Windows デベロッパー センター 32bit版のrebase.exeが64bitアドレスを指定できないという仕様(?)があるようで、Visual Studio 11でもそうかなと思って使おうとしたら起動しない。 あれ?と思…

Visual Studio 11でWin32プロジェクトを作成すると日本語ファイル名になる

Win32プロジェクトのデフォルト名にローカライズ名を初期値に使用している | Microsoft Connect 何気に作ってびっくりしました。ちなみにVisual Studio 2010ではプロジェクトの初期値になにも入っていません。個人的にはプロジェクト名が日本語というのは全…

VSHotfix ListsにKB2548139を追加

Visual Studio 2010SP1 Hotfix GDRだそうなので、累積的な修正みたいですね。Web Platform Toolsの更新のようで、Visual Studio 2010 SP1がFPEDITAX.DLLのLaidView::FindProperties()でクラッシュする問題に対応するそうです。

VSHotfix ListsにKB2546748を追加

Visual Studio 2010SP1 Hotfix VC++ error D8030 when doing /MP build on Windows XP SP3 ということなので、XP SP3で/MPオプションを付けてコンパイルするとD8030(コンパイラ内部エラー)が発生するという問題に対応するhotfixだそうです。

常時デバイスから取得するかどうか設計時に配慮しよう

ちょっとはまったので。 WindowsにはDeviceCapabilitiesという、デバイスの能力を取得するAPIがあります。このAPIでプリンタでサポートしている用紙の種類を取ってくることができます。 ところが、プリンタ…とくに仮想プリンタによってはかなり応答に時間が…

MS11-025でMFCにどんな変更が加えられたか

良く訓練されたVC++担当はもうMS11-025のdiffを読み終えていることだろう URL URL URL URL2011-04-14 22:05:46 via みについ全然訓練されていないですが、そういえばMS11-025の変更点確認やらなきゃなぁと思ってソースのdiffを取ってみました。でも手元の環…

Visual Studio 2010 SP1を当てるとIA64/x64コンパイラが削除される現象を治すhotfix

Download Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1 from Official Microsoft Download Center Windows SDK Team Blogでお知らせされていました。Visual C++ 2010 Express EditionにSP1あてると、Windows SDKのx64…

Visual Studio 2010 SP1 BetaからSP1へのアップグレード

というconnectフィードバックのコメントで「BetaからSP1へのアップグレードできるから試してね♪」とあったので、試してみるとばっちりです。ベータといっても基本的に今まで出たパッチの集合体+αってことなんでしょうかね?しかし、ランタイムのパッチっぽ…

Visual Studio Hotfix Lists更新 KB2495003

Visual Studio Hotfix Lists Visual Studio 2008のKB2495003のhotfixを追加しました。C++なので、例によって360MBあります…。マルチスレッドなMFCアプリケーションでデッドロック起きるようですね。KB889095のリグレッション(Visual Studio 2005で対応済み)…

Visual Studio Hotfix Lists追記

Visual Studio Hotfix Lists KB982517を追加。これは以前からKBのページも公開されていました。 Error message when you compile a Visual C++ 2010 project that includes the Atlcomcli.h file コンパイラに/Jオプションか、_CHAR_UNSIGNEDを定義すると、A…

VS hotfix ListsにKB2452649を追加

Visual Studio Hotfix Lists Visual C++のHotfixが出ていたので一件追加。これはKBも出ています。 FIX: Data tip is not displayed for a local variable when you debug a Visual C++ 2010 native application in Visual Studio 2010 Visual Studio 2010の…

C++ 64bitコンパイラが誤った命令を生成するhotfix-KB2485545

Visual Studio Hotfix Lists Visual Studio Hotfix ListsにKB2485545を追加。64bit版のC++コンパイラが命令の生成を誤るということなんでしょうか。MOVAPDとMOVDQAはアライメントがあっているメモリ同士でコピーを行う命令。MOVUPDとMOVDQUはアライメントが…

コンソールアプリケーションをリモートデバッグするとき

GUIアプリケーションだったら起動すれば、ユーザーアクション以外では終了しないのでとても簡単です。起動してからゆうゆう、リモートマシンでデバッガアタッチすればいいのです。 しかしコンソールアプリケーションの場合、ユーザーの応答なんて待たないも…

Tech Fildersコラムが公開されました

Tech Fielders コラム | マイクロソフト ちょっとサボっていましたが、Tech Fildersにコラムが公開されました。何でもいいという話で、一番いいのはTechEdのLTをコラムにすればどうでしょう?とアドバイスもいただきました。しかし、あれをコラムにしても面…

Visual Studio Hotfix Listsに追加(VC 2008更新)

なんか珍しくVisual Studio 2005のhotfixが追加されています。こちらはもうサポートが終了しそうな勢いなので、Hotfix Listsには入れませんが、ご紹介だけ。KB2435944Download Details | Microsoft Connect QFE Request: VC++ 8.0 (2005) SP1: Code generati…

Task Scheduler 2.0と1.0のAPIレベルの差

昨日ざっくりとタスク機能の歴史を見たので、今日はもうちょっと細かいところを。 Task Scheduler API 2.0の変更で一番気になったのが文字列と日付の扱いです。1.0ではTASK_TRIGGER構造体を作って、ITaskTrigger::SetTriggerへ渡すだけでした。DST(Daylight …

リモートセッションであるかどうか判定する方法いろいろ

Windows Vista以降、コンソールセッションとサービスセッションは分離されてしまいました。 セッション 0 の分離 - Windows 7 対応アプリケーションの互換性 Windows Vista® および Windows Server® 2008 アプリケーション互換性解説書 私もそうだったのです…

Visual Studio .NET 2003のプロジェクトをアップグレードして64bit版にするときはまること

私ははまってしまいました。Visual Studio .NET 2003とVisual Studio…たぶん2005以降、ソリューションファイルのマクロ定義(($OutDir)などのあれ)が相対パスから絶対パスに代わっているんですね。 たとえば、Visual Studio .NET 2003のソリューションファイ…

msvcrtをどのくらい使うか?

以前はShell Lightweight Functionの便利関数とかなかったので、自分たちでいろいろ作っていたと思います。文字操作系などはstrtokとかでいろいろやっていた人も多いでしょうし、strlenとかいまだに使っているコードよく見かけます。 最近はまずShell Lightw…

MOUSE_HWHEELED はVista以降

MOUSE_EVENT_RECORD structure (Windows) ではMOUSE_HWHEELEDイベント(コンソールでのマウスホイールの水平動作イベント)はWindows 2000以降みたいなことを書いていますが、実際WinCon.hを見るとこうなっています。 #define MOUSE_MOVED 0x0001 #define DOUB…

先月のVisual Studio hotfix

KB2295689FIX: Visual Studio 2010 does not build some Visual C++ projects or does not display the "Properties" page correctly when the "_BuildArch" or "_BuildType" environment variable is set on the computer _BuildArchもしくは_BuildTypeとい…

その機能を提供しているAPIがきっとあるよ

Win32APIで、10240 → "10K" みたいに補助単位付き文字列に変換してくれるのがあったような気がするんだけど、名前もわからないし効率的なググり方もわからない。Shell APIだったっけ。誰か知ってたら教えてください!2010-10-12 18:44:48 via webというつぶ…

じゃあ、CompareStringExでFullwidthの10と2はどう判定される?

昨日のWindows 7で文字列比較すると2は10よりも小さくできるよ - 新日々此何有哉を書いた後、「ASCIIは大丈夫。じゃあFullWidth(いわゆる全角)の10と2では」と思ってやってみました。 #define WINVER 0x602 #include <windows.h> #include <locale.h> LPCTSTR lpszCSTR[4] = {_</locale.h></windows.h>…

Windows 7で文字列比較すると2は10よりも小さくできるよ

文字列で2と10を比較すると、10のほうが小さいと判定されます。リストボックスなどにこんな風に出るといわれたことありませんか? 1 10 2 こんな感じ。lstrcmpやCompareStringといったAPIでは先頭の文字で判断しちゃうからこうなるんでしょうね。で、あまり…

Windows 7で高速にファイルを列挙させるFindFirstFileEx

長い間、NTFSチューニングの一つに「短いファイル名を生成させない」という技がありました。Windows Server 2008 R2のベストプラクティスアナライザーでも遅いディスクに対してはこのアドバイスが下されます。 NTFS Performance with Numerous Long Filename…

PathRemoveFileSpecAに0x5cを含むパスを渡した時の挙動

PathRemoveFileSpec function (Windows) Shell Lightweight Utility FunctionのうちのPath系のFunctionは便利で私もよく使っています。PathRemoveFileSpecのANSI版が特定のOSでバグっているという話を聞いたので、試してみました。 #include <stdio.h> #include <windows.h> #inc</windows.h></stdio.h>…

X64 Windows Debugging: Practical Foundationsが届いた

[id:kkamegawa:20100522:p1]で紹介した本が今日届きました。いや、聞いてはいたけどほんとに薄い本です。読むためにはWinDbgと基本的なアセンブラの知識は必要で、そのうえでx64では何が違うのかということを紹介しています。X64 Windows Debugging: Practic…

VS2003からのC++プロジェクトアップグレードするとLNK1117エラーが出る場合の対処

Visual Studio .NET 2003のC++プロジェクトからVisual Studio 2008のC++プロジェクトにアップグレードしました。するとWin32 Debugで生成するとこんなエラーが。 LNK:1117オプション '/MAP:LINEINFO' に構文エラーがあります。 どうやら/MAP:LINEINFOは削除…

Express Editionにみるデバッガ機能の違い

ブレークポイントとトレースポイントの使用 なぜかC++のExpress Editionだけデバッガの高度な機能(フィルタとかヒットカウント)が使えるんですね。Visual Studio 2005からの伝統のようで。うーむ、C#とかVB,Web Developerでもあっていいじゃないとか思うんで…

同時実行ランタイムの翻訳

.NET Frameworkのパラレルライブラリだけで、ネイティブコードのConcurrency Runtimeは翻訳されないだろうと思ったら、ちゃんと人間の翻訳が入っていたんですね。すばらしい。 同時実行ランタイム 並列ランタイムの「タスク スケジューラー」も間違いではな…

IsOS

IsOS function (Windows) つらつらとShell Lightweight Functionsを見ていたらなんだこれってAPI。これWindows Server 2003まででしか使えない(Vista/7ではサポート外)っていうAPIですね。今ではちゃんとVerifyVersionInfoを使いましょうってことになってい…

それ違うから

今までメンテナンスしていたプログラムの64bit化をやってます。そうすると問題がちょこちょこ出てきます。これは今まで隠れていた類の問題のはず。 long foo(LPTSTR arg1, LPTSTR arg2) { TCHAR a[129]; TCHAR b[129]; (略) RegOpenKey(略); QueryValueEx(略…

x64クロス生成環境

知ってるひとがそばにいると心強い これ見て思い出したんだけれども、やはり「クロス開発環境」を提供するのはめんどいのかなぁと思った。会社の開発環境で「生成したきゃ64bit環境用意しろ」というものがあって、びっくりしたのですよ。 今はHyper-Vで楽に6…

Visual Studio 2008 SP1インストール後に必要なプログラム

ダウンロードセンターにはちょいちょい出ていますが、どうしても入れなくてはいけないもの以外にも割とあります。基本的にはあてたほうがいいのですが、結構多いですね…。 サポート技術情報からダウンロード可能なパッチ一覧。 Visual Studio - マイクロソフ…

Visual Studio 2010でコードバイトを表示するには

Visual Studio 2010ではC/C++のデバッグ時でも逆アセンブルは表示されますが、コードバイトは表示されなくなったようです。 昨日のcodeseek勉強会で「これが見えなくなって大変不便だ」という話がありましたが、デフォルトで見えなくなっただけで、ちゃんと…

imepad.h

Download Office Sample: Input Method Editor (IME) Header File: imepad.h from Official Microsoft Download Center Office IME 14(Office IME 2010)リリースに伴い、恒例のSDKに入りそうで入らないヘッダがダウンロードセンタに登場。誰が使うのかは置い…

無理だろうけど、C++/CLIの自動マーシャリングの強化について

[id:kkamegawa:20091202:p1]にegtraさんからコメントいただきました。ありがとうございます。 そのhHandleへのポインタを渡したければ、Class1::Test内で、pin_ptr phHandle = &hHandle;と、確かpin_ptrに入れればHANDLE*を引数に取るOpenPrinterに渡せるよ…