2017-10-01から1ヶ月間の記事一覧

dynamicなSystem.JsonもといJsonValueを使う方法

C#

最終追記 JsonValueは開発終わってるので、似たような使い方ができるDynamicJsonを使いましょう。シリアライズ var jsonString = DynamicJson.Serialize(p); WriteLine(jsonString); // {"Name":"Kato Jun","Age":31}デシリアライズ var obj = (Person)Dynam…

メモリリークを追う方法 Visual Leak Detectorを使うパターン

CPP

以下よりダウンロードして、インストールする。 Visual Leak Detector for Visual C++ 2008-2015VC++ プロジェクトのプロパティから以下を設定する。 [C/C++] -[全般] - [追加のインクルードディレクトリ]に以下を追加。 C:\Program Files (x86)\Visual Le…

C++で簡単非同期プログラミング(std::thread,std::async) 

CPP

result.get()で処理を待って、値を返してくれる #include <future> ... auto result = std::async(std::launch::async, [] { return long_hogehoge(); }); // 非同期中の処理なにか std::cout << result.get() << std::endl;処理中かどうか判定をいれてその間アニメ</future>…

excelでボタンをコピーしたとき、何故かActiveSheet.Shapes(Application.Caller).TopLeftCell.Addressがコピー元のアドレスが返ってくるとき対策

こんなマクロでボタンの位置がとれるんだけど、 なぜかボタンをコピーするとコピー元の座標が返ってくる現象に遭遇する時がある。 MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address MsgBox ActiveSheet.Shapes(Application.Caller).TopLe…

C++ REST SDK find()で得たイテレータのエラー判定

終端と比較して判断 json::value json; ... auto ite = json.as_object().find(U("Hoge")); if ( ite == json.as_object().cend() ) { // 見つからなかった }else{ // 見つかった! } ネタ元 https://stackoverflow.com/questions/23135695/how-to-return-a-…

C++ REST SDK json::valueのイテレータ

オフィシャルのマニュアルに obj.cbegin() とかってかいてあるけど、これはver1.0時代のもの。執筆時点ではobj.as_object().cbegin() のようにas_object()をかます必要ある。 json::value obj; obj[L"key1"] = json::value::boolean(false); obj[L"key2"] = …

C++ REST SDK でjson_exceptionがでて困った時

try-catchで例外捕まえて理由を調べるといいよ。 try { ... } catch (const std::exception& e) { std::wcout << e.what() << endl; }たぶん返ってきてるjsonになにか不備があると思うよ。 ネタ元 https://github.com/Microsoft/cpprestsdk/issues/291

C++ REST SDK websocket_clientのサーバーからのメッセージのコールバックを設定できる版websocket_callback_client がある

こんな感じ。 client.set_message_handler([](websocket_incoming_message msg) { //サーバからのメッセージを処理する... try{ auto is = msg.body(); streams::container_buffer<std::vector<uint8_t>> ret_data; is.read_to_end(ret_data).wait(); const std::vector<uint8_t> &v = ret_</uint8_t></std::vector<uint8_t>…

std::vector<char>をstd::stringに変換する

stdString()を使う。std::vector型の変数vecCharがあるとする。 // -> std::string std::string stdString(vecChar.begin(), vecChar.end()); ネタ元 http://gin0606.hatenablog.com/entry/2013/12/12/162218

VC++で出力コマンドプロンプトにutf-8日本語表示

#include <Windows.h> ... // コマンドプロンプトの文字コードをUTF-8に設定する SetConsoleOutputCP(CP_UTF8); ネタ元 https://qiita.com/ulicknormanowen/items/e253d30c0f4441016ef5</windows.h>

C++ REST SDK で websocketのレスポンスでjson扱う

うまくいかにゃい※追記: BOM付きJSONだとうまくいかないことが判明!そんな時はこんな感じでBOM削除して改めてjson::value作らないといけない。 std::wstring json_bom = res.extract_string().get().c_str(); std::wstring json_nobom = L"{" + json_bom.s…

C++ REST SDK でwebsocket

websocket_client使う。 ネタ元 https://blogs.msdn.microsoft.com/vcblog/2014/06/25/c-rest-sdk-websocket-client/ https://github.com/Microsoft/cpprestsdk/wiki/Web-Socket http://emma.memect.com/t/77d50c99b34f5410f6a6a013b02a3495839c874673864f19…

std::stringとstd::wstringの相互変換

内部コードにUTF8を利用する場合 かつ日本語使わない #include <iostream> #include <locale> #include <codecvt> #include <cstdio> int main(){ std::string message = "ABCDEFG"; std::wstring_convert<std::codecvt_utf8<wchar_t>,wchar_t> cv; //string→wstring std::wstring wsmessage = cv.from_bytes(message); std:</std::codecvt_utf8<wchar_t></cstdio></codecvt></locale></iostream>…

C++で非同期プログラミング Taskを起動

#include <ppltasks.h> #include <string> #include <windows.h> using namespace concurrency; using namespace std; int wmain() { auto t = create_task([]() { DWORD ms; wchar_t str[40]; for (int i = 0; i < 3; i++) { ms = GetTickCount(); // Win32 API() swprintf(str, 40, L"A: T</windows.h></string></ppltasks.h>…

C++ REST SDK サンプル Bing検索

#include <cpprest/http_client.h> ... // Create http_client to send the request. http_client client(U("http://www.bing.com/")); // Build request URI and start the request. uri_builder builder(U("/search")); builder.append_query(U("q"), U("cpprestsdk github")); au</cpprest/http_client.h>…

char16_t / char32_t の std::string型

std::u16string s16 = u"𠮷野家"; std::u32string s32 = U"𠮷野家"; ネタ元 https://cpprefjp.github.io/lang/cpp11/char16_32.html

C++ 文字リテラル

char 型のナロー文字リテラル。たとえば 'a' wchar_t 型のワイド文字リテラル。たとえば L'a' char16_t 型のワイド文字リテラル。たとえば u'a' char32_t 型のワイド文字リテラル。たとえば U'a' ネタ元 https://msdn.microsoft.com/ja-jp/library/69ze775t.…

C++ による base64 エンコード/デコード

元サイト http://yano.hatenadiary.jp/entry/20100908/1283945820 消えたら困るのでメモ base64.hpp #ifndef BASE64_HPP_20100908_ #define BASE64_HPP_20100908_ #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragma once #endif #include <string> #include <vector> na</vector></string>…

C++ REST SDK visualstudioでのインストール方法

nuget使う「cpprestsdk」で検索。インストール ネタ元 https://github.com/Microsoft/cpprestsdk/wiki/How-to-use-the-C---Rest-SDK-NuGet-package

軽量htmlエディタ Brackets

Webによる、Webのための次世代エディタ Brackets自身がHTML・CSS・Javascriptで出来ており、まさに「Webによる、Webのためのエディタ」オープンソースなのにAdobe製。起動も結構軽くて いい感じ。 ダウンロード http://forest.watch.impress.co.jp/library/s…

はてなブログのバックアップ方法

はてなさんのスパムブログ一斉削除に巻き込まれ、一瞬ブログが消えるという恐怖を味わいました。サポートに問い合わせたらすぐ復旧したので良かったです。ありがとうございます。駄文とは言え約15年分あるので、バックアップ取ってみました。画像は無理です…

バッチ(bat)ファイルでyyyymmddhhmmssの日付/時間を使ったファイル名にして7zipでzip圧縮

c:\backupfilesフォルダを圧縮するイメージa は追加の意味 set FName=C:\test_%date:~-10,4%%date:~-5,2%%date:~-2,2%%time:~-11,2%%time:~-8,2%%time:~-5,2%.zip "C:\Program Files\7-Zip\7z.exe" a %FName% c:\backupfiles\ ネタ元 http://www.atmarkit.co…