物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

PocoをVisual Studio 2017でとにかくビルドするコマンド

Poco をダウンロードする。

https://pocoproject.org/download/index.htmlpocoproject.org

Visual Studio 2017の場合

x64 Native Tools Command Prompt for VS 2017

を起動し、次のコマンドを叩く

buildwin.cmd 150 build all both x64 nosamples notests msbuild

Windows SDK バージョン 8.1」が足りないと言われたら、Visual Studio Installer 「C++によるデスクトップ開発」の中から探して入れる。

以上。

オプションの中身? 自分で調べるべし。

参照 mataro777.hateblo.jp

f:id:onsanai:20170723013438p:plain

ATOK2017の日本語入力でVisual Studio 2017のGitのcommitメッセージを書こうとすると異常終了する

Visual Studioが異常終了します。常に異常終了するわけではありません。原因と解決をご存じの方いませんか?

ちなみに、Visual Studio 2015でも同様の現象は起きます。過去にGoogle-IMEでVS2013及びVS2015を使っていましたが、同様の事象は確認していません。

OneDriveと同期できません というエラーの解決方法を探索中

2022年時点で、Microsoftから OneDrive をリセットする という記事が出ていたので、参照せよ。

support.microsoft.com

%localappdata%\Microsoft\OneDrive\onedrive.exe /reset
"C:\Program Files\Microsoft OneDrive\onedrive.exe" /reset
"C:\Program Files (x86)\Microsoft OneDrive\onedrive.exe" /reset

以下、過去の記事

X個のファイルが OneDriveと同期できません。

エラー ファイルで遅延が発生しています。

解決方法 ファイルのダウンロード/アップロードは後ほど行います。

という表示が消えない。

やったことは、メインPC2個で、

onedrive /reset

同期にずいぶん時間がかかったが、同様の表示は出なくなった。

ついでに、使用頻度の低いフォルダを圧縮して一つのファイルにまとめた。これも効いているのかもしれない。

2019年時点でこのエラーは発生していません。

C#でMicrosoft Translator Text APIを使う、2017年1月1日以降も有効な方法

日本語のドキュメントを見つけたぜ、と思ったのだが、罠にかかった。

qiita.com

コメントにも書いたが、この方法は2017年1月1日以降は有効ではない。コメント欄でも紹介されていたが、

Getting Started with Microsoft Translator

に書かれているとおりに進めば良いだろう。

トークンを取得するのに使うのは次の画像のKEY 1というものだ。とにかく、この画面が見れたら勝利は目前だ。ちなみに、KEY 2をつかってもトークンは取得できる。

f:id:onsanai:20170108192503p:plain:w400

トークンを取得する方法はここに書いている。

github.com

翻訳をするためのコアのコードは他の読み物が沢山あるためここでは詳細に書かない。だが、自分のメモのために一応コードを書いておく。追加すべきusingや参照は何も書いていないので注意が必要である。

private string TranslateMethod(string authToken, string translating)
{
    string translated = string.Empty;
    string from = "ja";
    string to = "en";
    string uri = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text=" + 
        System.Web.HttpUtility.UrlEncode(translating) + "&from=" + from + "&to=" + to;

    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);
    httpWebRequest.Headers.Add("Authorization", authToken);
    WebResponse response = null;
    try
    {
        response = httpWebRequest.GetResponse();
        using (Stream stream = response.GetResponseStream())
        {
            DataContractSerializer dcs = new DataContractSerializer(Type.GetType("System.String"));
            translated = (string)dcs.ReadObject(stream);
        }
    }
    finally
    {
        if (response != null)
        {
            response.Close();
            response = null;
        }
    }
    return translated;
}

以上だ。