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

前のBinaryクラスで簡単なサンプルを作成。PNGファイルを暗号->複合。 非常にあっさりとしたプログラムになる。int _tmain(int argc, _TCHAR* argv[]) { _tsetlocale ( LC_ALL, L"" ); _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_DELAY_FREE_MEM_DF|_C…

前のBinaryクラスを使用して文字列(unicode)とバイナリデータ(ansi文字列を含む)のややこしいやり取りを極限まで簡素化してみた。 // utf8とunicodeの変換 Binary utf8( std::wstring& s ); std::wstring utf8( const Binary& b );// バイナリーデータのbase…

バイナリデータを扱う上で必ず必要になる情報はバイナリデータの長さである。 これらをまとめて、かつ参照カウンタで寿命を管理する簡単便利なクラスを作ってみた。 参照カウンタの加減算にロックはかけていないので、スレッドには未対応である。 //////////…

HWNDはウインドウハンドルだが、OOPではちょっと邪魔な存在である。 子ウインドウは親ウインドウのWM_PAINTとは別系統でシステムが描画するからである。 コントロールの描画をWM_PAINTだけで統一できれば、色々なことができるはずだが、20年以上前のメモリ4M…

Direct2DでイメージファイルであるPNGを表示する方法。 ID2D1RenderTarget* cxt = ...CComPtr bmp; D2DResource::LoadImage( cxt, L"e:\test\images\abc.png", &bmp ); // auto image_size = bmp->GetPixelSize(); イメージの大きさ//リソースから読み込む場…

下のMainFrameをDirect2Dで今風(Windows8 Desktop)に作成してみました。Caption右上のボタンは手作りです。 // Win32Project2.cpp : アプリケーションのエントリ ポイントを定義します。 //#include "stdafx.h" #include "Win32Project2.h" // VSが作成した…

JavaScriptのArray(VARIANT型)をCOM側で作成する方法、map編 static bool CreateJavaScriptMap( IActiveScript* pAS, std::map& src, IDispatch** pout ) { HRESULT hr; CComPtr pD; CComVariant vr; DISPID idMethod; LPOLESTR nm[] = { L"Array" }; hr = p…

JavaScriptのArray(VARIANT型)をCOM側で作成する方法、list編 bool CreateJavaScriptArray( IActiveScript* pAS, VARIANTARG* varg, int varg_cnt, IDispatch** pout ) { HRESULT hr; CComPtr pD; CComVariant vr; DISPID idMethod; LPOLESTR nm[] = { L"Arr…

JavaScript内のArray(VARIANT型)をCOMへ投げ入れてみたが、keyは文字型になる。JavaScript : var ar = [1,2,3]; var map = { "first":1,"second":2,"third":3 };// obj is CListCom Variant obj.Set( ar ); obj.Set( map );C++ : STDMETHODIMP CListCom::Set…

高分解能 経過時間の計測方法 #include "stdafx.h" #include #include int _tmain(int argc, _TCHAR* argv[]) { LARGE_INTEGER s,f,e; QueryPerformanceFrequency(&f); QueryPerformanceCounter(&s); { Sleep(1000); // 1sec } QueryPerformanceCounter(&e);…

c++ amp ソート

GPUによる頭悪そうな総当たりソートプログラム。 #include #include using namespace concurrency; void test_sort() { std::vector data(16); // random value data[0] = 8; data[1] = 4; data[2] = 3; data[3] = 7; data[4] = 6; data[5] = 5; data[6] = 2…

C++ Amp のindexクラスについて、の簡単明瞭サンプル。 #include using namespace concurrency;void test1() { std::vector data(10); for (int count = 0; count { data[count] = count; // 0,1,2,3,4 } concurrency::array a(2,5, data.begin(), data.end(…

VC++の環境ディレクトリの設定方法などをまとめてみた。●プロジェクトのプロパティ 構成プロパティ ->VC++ディレクトリ 注1 ->C/C++ 全般 追加のインクルドディレクトリ 注2 ->リンカー 全般 追加のライブラリディレクトリ 注3 ->ビルドイベント ビルド後…

Passenger絡みでインストールがうまくいかなかったので、ビルドしてみた。#OSをインストール後、 sudo apt-get update sudo apt-get upgrade#Passengerをビルド。 sudo apt-get install libcurl4-openssl-dev sudo apt-get install apache2-prefork-dev sudo…

githubへあるプログラムを公開しました。 Windows上でC++アプリからjavascriptを利用するサンプルです。