2017-01-01から1年間の記事一覧

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…

MFC エディットコントロールの高さを、文字列や横幅にあわせて自動的に変更する

MFC

GetWindowRect()で情報を得る void ChangeEdit2Height(){ // 文字列の取得 CString strBuff; int nstrLen = ce2.GetWindowTextLength() + 2; ce2.GetWindowText(strBuff.GetBuffer(nstrLen), nstrLen); strBuff.ReleaseBuffer(); // IDC_Edit2のサイズ変更 C…

高DPI対策 OS任せにする方法

Windows Vista以降だとDPI仮想化機能がありますので、未対応アプリケーションでもとりあえず使用できる。いざとなれば、ファイルのプロパティから「高DPI設定では画面のスケーリングを無効にする」を選択することでDPI仮想化をキャンセルすることが可能。 Wi…

高DPI対応調査 96 DPI ピクセルを想定しているデザインをどれだけスケーリングするか調べる

// 96 DPI ピクセルを想定しているデザインをどれだけスケーリングするか double scaleX; double scaleY; #define SCALEX(argX) ((int) ((argX) * scaleX)) #define SCALEY(argY) ((int) ((argY) * scaleY)) void InitScaling() { HDC screen = GetDC(0); sc…

フォントのポイント数からドット数を計算する

${フォントのポイント数} × ${利用ディスプレイのDPI} ÷ 72 = ${フォント表示のドット数(高さ)} (Win32APIの)CreateFont は、ポイントで指定する 1ポイント = 1/72インチ DPI(dot per inch)は、画面設定によって異なる 標準的な画面設定では、96dpi ネタ元 h…

Excel VBA(エクセル マクロ) 外部データの取り込みのマクロ化 Webデータ(ホームページファイル)の取得。 Excelツールで外部データの取り込みがある。 VBAでマクロ化して、Excelにファイル名を変更して読み込むようにする。

QueryTablesを使う With Sheets("取り込みデータ").QueryTables.Add(Connection:="URL;" & url, Destination:=Sheets("取り込みデータ").Range("A1")) .Name = "test" .FieldNames = True .RowNumbers = False .Refresh BackgroundQuery:=False .RefreshPeri…

64bit Windowsを前提とした32bitアプリケーション延命法 ~ LAAオプションで32bitアプリケーションのメモリ不足問題を解消

32bitアプリは普通2Gしかメモリ割り当てられない。VisualStudioで 構成プロパティ → リンカー → システム → 大きいサイズのアドレス を「はい」を選ぶと64bitOSの場合、アプリで4Gのメモリが利用できるようになる。32bitOSの場合は3GBスイッチを使ってもらう…

集中線追加ツール(HTML5版)

http://neutralx0.net/tool/line/

ethOSのアップデート

sudo ethos-update && sleep 5 && r別セッションで以下コマンド打つと進捗が見れます tail -f /tmp/ethos-update.log ネタ元 https://blog.bitcafe.jp/mining-38 http://ethosdistro.com/kb/

BackWPupがエラーが出るようになったなら、UpdraftPlusが代替候補

いつのまにかエラーになってバックアップが作られなくなってるサーバーがあった。サーバー依存だったのでなにか差があるのでしょう。 UpdraftPlusを使うとDropbox上にバックアップできるのでよさげ。 ネタ元 https://kitagawa-kaede.com/wordpressbackup01/

CArrayのループ

MFC

シンプルにforループ for (int i = 0; i < array.GetSize(); i++) { str = str + array[i] + "\r\n"; } ネタ元 http://www7b.biglobe.ne.jp/~makandat/VC/Group17/CArray.htm

MFCラジオボタンの基本

リソースエディタでラジオボタンを配置する グループにしたいラジオボタンのうち、最初のタブオーダーのラジオボタンだけ「Group」をTrueにします。他はデフォルトのままでOK DDX変数を追加しましょう。グループの最初のラジオボタンを右クリックし、「変数…

windowsのftp.exeで 425 Failed to establish connection. が出たときはファイアウォールで弾かれてる可能性高し

ファイアウォールでftp.exeを許可しよう ネタ元 https://social.technet.microsoft.com/Forums/ja-JP/95ff65ca-171f-4f64-8a0b-3d211b0624da/ftp?forum=iis7ja