昆布大好き!

主にプログラミングの技メモ

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

会話にて

揚げ足取りです。 プログラマ同士で会話していると、言葉遣いが気になることがありまして。 デファイン定義 C/C++のプリプロセッサのマクロ定義のことを指しています。意味かぶってる… C#でGUIを作る 言ってることはわかる。わかるけど.NETでと言ってほしか…

Haskellコードを動的ライブラリにしてCから使用する その2

つづきです。 ghcで作成したライブラリを呼び出すコードです。 #include <iostream> extern "C" { int hslibInit(int argc, char *argv[]); void hslibEnd(); int exprI(wchar_t *str); int exprCheck(wchar_t *str); } int main(int argc, char *argv[]) { int n = 1;</iostream>…

Haskellコードを動的ライブラリにしてCから使用する その1

それほど難しくはないのですが、その分細かい手順を忘れやすいので。 まずは、動的ライブラリ(DLL)の作成まで。 必要な手順は、 Haskellのコードで関数を公開して、外部から参照できるようにする DLLのインタフェイスとなるCのコードから公開したコードを呼…

C++uniqu_ptrとshared_ptr

C++

C++の標準ライブラリにはunique_ptrとshared_ptrと同じようなスマートポインタがあります。 何が違うのか?どう使い分ければ良いのか? と、気になりましたので少し調べてみました。 実行環境は、 OS: Windows 8.1 CPU: Core 2 Quad Q9550 2.83GHz ビルド: V…

c++ list と vector

C++

C++のSTLにはlistとvectorなどとよく似たコンテナ型がありますが、 何が違うのか?どう使い分けるか? と、気になりましたので少し試してみました。 実行環境は、 OS: Windows 8.1 (64bit) CPU: Core 2 Quad Q9550 2.83GHz コンパイラ: Visual Studio 2013の…

TCPコネクション リセットの理由

ソケットに対してcloseを呼び出して、TCPコネクションを切断すると切断をリセットされた(エラーメッセージだと'Connection reset by peer'など)と判断される場合があります。 この場合、TCPヘッダにRSTフラグがセットされています。 同じようにcloseを呼び…

失敗しました Pythonからdllを読み込む

Pythonからdllを読み込もうとして失敗しました。 SetMouse.dllなる動的ライブラリをあらかじめ作成して、 import ctypes dll = ctypes.windll.SetMous と、すると OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。 などと読み込…

コマンドラインからVCコンパイル - 開発用コンソール設定

Windows なのに、ターミナルを使うお話。 c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat にあるようなバッチファイルを呼び出せば、VCコンパイラのために環境変数をセットしてくれます。 (上記は、私のPCの場合。OSのバージョ…

失敗しました Pythonでラムダ式

Pythonでプラス1する関数、プラス2する関数、…のリストを作ろうとして失敗しました。 #悪い例 ys = [] for i in range(4) : ys.append( lambda x: print(i+x) ) for f in ys : f(10) print() #良い例 ys = list(map( lambda x: lambda x2: print(x2+x), rang…

偽共有 マルチスレッドの敵

マルチコアプロセッサの複数のコアが並走しても、キャッシュが共有であれば上手く並走しないことがあるようです。 あるスレッドがアクセス中のキャッシュラインを、別のスレッドが書き換えた場合、メモリの不整合が生じないようにキャッシュのデータをメモリ…

TCP 対 UDP

TCPよりUDPがシンプルである、よってはやい。などと疑いもなく信仰する人が多いように思いました。なのでやってみました。 PC1 <-----> PC2 のような一対一のLAN直結ですが。 何故こんなつなぎ方をするのか。もっともだと思いますが。まあ、ね。こう使う人も…