CPP

ファイルが残っているフォルダを削除

コツコツファイル消してからRemoveDirectory()が正攻法だとおもうけど、シェル関数を使うと楽。間違って大事なフォルダ消しちゃわないようにデバッグ時は要注意だよ。 BOOL DeleteDirectoryUseShellFunc( LPCTSTR lpPathName ) { // 入力値チェック if( NULL…

STLで正規表現

※OLE2T が実行されるたびに、スタック領域が消費されるのでループ内での使用や、非常に大きな文字列の使用は避けてね! #include <regex> #include <string> #include <iostream> ..... // パーサー LPTSTR p_json = OLE2T(json); // strtok "}"で区切り LPTSTR p_tp; LPTSTR p_next; </iostream></string></regex>…

std:string(shiftjis/ansi)からCString(unicode)に変換する簡単な方法

CStringAに入れてからCStringに突っ込む。直変換するより、メモリや処理速度の効率は良くないと思うよ。 std:string str_sjis; str_sjis = "abc"; CStringA mess; mess.Format("%s",str_sjis.c_str()); CString mess2; mess2 = mess; AfxMessageBox(mess2);

メモリマップドファイルを使ってアプリケーション間でデータを共有する

CPP

http://www.gesource.jp/programming/bcb/82.html http://www7a.biglobe.ne.jp/~tsuneoka/win32sub/3.html http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_FileMapping.html

シングルトンパターンの実装

CPP

http://www.geocities.jp/bleis_tift/cpp/singleton.html

ラムダ式のサンプル

CPP

C++でのラムダ式のサンプル。 http://kaworu.jpn.org/cpp/%E3%83%A9%E3%83%A0%E3%83%80%E5%BC%8F

BSTRからCStringの変換

CPP

OLE2Tマクロというのがある。 USES_CONVERSION; // 。変換のためのリソースを確保するためのもの? CString str = OLE2T(*a); ネタ元 COMプログラミング BSTRからCStringの変換方法

C++でREST通信するには REST SDK

CPP

無理せずC#とかで組んだほうが楽っぽいがどうしてもというならC++でもライブラリがあるというお話。 C++ REST SDKを使ってWebサービスを利用する from You&I C++ REST SDKを使ってWebサービスを利用する

vector以外の動的配列 CArray / CAtlArray

例えば128個の配列を確保するときそれぞれ次のようにコーディングすることができます。(この他にも方法はありますが) CArray < int > a; a.SetSize( 128 ); CAtlArray < int > b; b.SetCount( 128 );ネタ元 VC++、CArray、CAtlArray、vector、配列の違い | …

C++でJSONを使うライブラリ

CPP

色々あるみたい。一番簡単に扱えるのはpicojsonだなぁ。 Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い Kazuho@Cybozu Labs: 今更 C++ で JSON パーサ「picojson」を書いたわけ でらうま倶楽部 : C++でJSONを読み書きするならpicojso…

C++から.NET(C#)のDLLに文字列を含む構造体を渡して書き込んでもらう方法

[.net][CPP][C#]C++側 typedef struct _StrData{ INT32 num0; INT32 num1; INT32 num2; INT32 num3; INT32 num3; char moji0[5]; // 4文字 char moji1[2]; // 1文字 StrData(){ num0 = num1 = num2 = num3 = num4 = 0; memset(moji0,0,5); memset(moji1,0,2)…

CStringからBSTRを作るにはAllocSysString()/SetSysString()を使う

Microsoft Foundation Class(MFC)には BSTR をラップするヘルパー クラスがありません。代わりに、別の方法で BSTR と MFC の CString クラス間の変換が簡単に行えます。次のように BSTR を CString コンストラクタに渡すだけで BSTR を CString に変換で…

C++のスマートポインタといえばstd::unique_ptr

CPP

昔はauto_ptr使ったりしたけど、もう古いそうです。問題あったらしい。ネタ元 スマート ポインター (Modern C++) C++11メモ @ 唯一のリソースはstd::unique_ptr - ラーメンは味噌汁 以下消えると困るのでコピペまずは基本的な使い方です。コンストラクタに管…

VB.NETのBool型は数値型に変換すると、Trueのときは-1、Falseのときは0

TRUE = 1 じゃないんだ! VBのBool型とSQL ServerのBit型. VB.NETのBool型は真偽を表す型で、TrueまたはFalseを返します。 数値型に変換すると、Trueのときは-1、Falseのときは0になり、 文字型に変換すると、Trueのときは"True"、Falseのときは"False"にな…

クリップボードに貼り付ける方法

CPP

[CPP]■クリップボード 以下のコードで、クリップボードへテキストをコピーします。●ワイド文字の場合 一旦、WideCharToMultiByte関数を使ってマルチバイト文字(OEM)に変換する必要がある。 ワイド文字のままクリップボードにコピーしても、ペースト時に、マ…

C#で作ったDLLのAPIにC++から構造体のポインタを渡して、結果を書き込んでもらう

[CPP][C#]これで正解なのかわからないが、とりあえずできたのでメモ。C#の方はunsafeを有効にしておく。 C#側 [DllImport("kernel32.dll")] static extern unsafe void CopyMemory(void* dst, void* src, int size); // 受け渡し用構造体(32bit前提) [Struct…

C++でいい感じでHTTPが扱えるライブラリnanowww

CPP

[CPP]まずはgitをインストールしてないと入手できない WindowsにGit環境をインストールする そしてリポジトリも適当に作っておかないといけない Gitの基本 新しいリポジトリを作成する そしてコマンドプロンプトでつくったリポジトリのフォルダに移動。Gitで…

構造体のコンストラクタでも引数付けられる

CPP

クラスとの違いがあんまないんだなぁ。 サンプル #include <iostream.h> struct Complex { Complex( int nRe=0, int nIm=0 ) { m_nRe = nRe; m_nIm = nIm; } int m_nRe; int m_nIm; }; void main() { Complex C0; Complex C1( 123 ); Complex C2( 123, 456 ); cout << "C</iostream.h>…

文字列から数値に変換

C CPP

文字列の日付を数値にして抽出など。CStringでも使える。 char *str = "2013/4/9" long year,month,day; sscanf(str,"%d/%d/%d",&year,&month,&day);ネタ元 http://www.ccad.sist.chukyo-u.ac.jp/~mito/ss/program/C/DialogBase/app/string/ http://www9.pla…

wctob() ワイド文字 (wide character)1文字を を 1 バイト文字に変換 

CPP

ワイド文字 (wide character) を 1 バイト文字に変換します. #include <stdio.h> #include <wchar.h> int wctob( wint_t * c );wctob 関数は c で指定されるワイド文字が 1 バイト文字に対応するかを調べ,可能なら 1 バイト文字に変換します.戻り値 c の値が正しい 1 バイト</wchar.h></stdio.h>…

「ソートも、サーチも、あるんだよ」〜標準C++ライブラリにみるアルゴリズムの面白さ

CPP

標準ソート関数の紹介 ネタ元 http://codezine.jp/article/detail/6020

基底クラス(親クラス)の関数の呼び出し方法

CPP

しばらくぶりで忘れちゃってた。 Application::onKeyPress(a_key, a_x, a_y);つまり基底クラス名::メンバ関数名(パラメータ); 基底クラスの呼び出し方は言語によって様々。 ネタ元 http://slashdot.jp/~j3259/journal/399424

STL風に使えるマップ型コンテナの紹介と性能比較

CPP

コンテナ系も色々あるんですね。std::mapしか使ったことなかった。 Loki::AssocVector google-sparsehash STX B+ Tree std::map std::unordered_map 使用メモリの比較図 更新が少なくて、参照が多い場合はLoki::AssocVectorを使うといいみたい。メモリ効率が…

「C++ による Windows プログラミングの学習」 が日本語化されました

CPP

C++ 初心者の方を対象とした MSDN ライブラリの 「Learn to Program for Windows in C++」 がこのたび日本語化され、 「C++ による Windows プログラミングの学習」 として公開されました。http://blogs.msdn.com/b/jpwin/archive/2011/07/04/learn-to-progr…

googleのgflagsでは大がかりすぎだと思っている方へ C++向け簡易コマンドラインパーザ cmdline

C++向け簡易コマンドラインパーザ cmdlineコードのダウンロードはこちら http://github.com/tanakh/cmdline 使ってみようとおもってVC++でコンパイルかけたらcxxabi.hが無いと怒られた。gccについてくるライブラリがないとつかえないっぽい。うーむ、なんと…

vectorのソート

std:sort()を使う #include <vector> #include <algorithm> using namespace std; ・・・ vector<long> data; data.push_back(10); data.push_back(5); sort(data.begin(),data.end());//昇順ソートネタ元 http://7ujm.net/stl/sort.html</long></algorithm></vector>

vectorでの検索(find)の仕方

vector自体にはfindがないのでアルゴリズムを使う vector<long> v_list; ・・・ v_list.push_back(100); v_list.push_back(200); v_list.push_back(300); vector< long >::iterator cIter = find( v_list.begin(),v_list.end() , 200 ); if( cIter != v_list.end() ){</long>…

StrToInt()のDouble版を手作りする

#include <string> ・・・ const double StrToDouble(CString& s) { return std::atof(s.GetBuffer(0)); }ネタ元 http://www.richelbilderbeek.nl/CppStrToDouble.htm</string>

POCO C++ Libraries

CPP

C++ Portable Components の略で、POCO project が作成/メンテナンスしている C++ Class Library。 大ざっぱに言えば Java の標準クラスライブラリの、ネイティブ C++ 言語版といったニュアンス。機能: スレッド、スレッド同期及びマルチスレッドプログラ…

CString/intの変換には StrToInt()というのもあるよ

CPP

いろいろ方法はあるけど、CStringからなら、これのほうが気持ちよく変換できる気がする scann = StrToInt(scanx); // shlwapi.h ネタ元 http://q.hatena.ne.jp/1177074643