2015-01-01から1年間の記事一覧
揚げ足取りです。 プログラマ同士で会話していると、言葉遣いが気になることがありまして。 デファイン定義 C/C++のプリプロセッサのマクロ定義のことを指しています。意味かぶってる… C#でGUIを作る 言ってることはわかる。わかるけど.NETでと言ってほしか…
つづきです。 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>…
それほど難しくはないのですが、その分細かい手順を忘れやすいので。 まずは、動的ライブラリ(DLL)の作成まで。 必要な手順は、 Haskellのコードで関数を公開して、外部から参照できるようにする DLLのインタフェイスとなるCのコードから公開したコードを呼…
C++の標準ライブラリにはunique_ptrとshared_ptrと同じようなスマートポインタがあります。 何が違うのか?どう使い分ければ良いのか? と、気になりましたので少し調べてみました。 実行環境は、 OS: Windows 8.1 CPU: Core 2 Quad Q9550 2.83GHz ビルド: V…
C++のSTLにはlistとvectorなどとよく似たコンテナ型がありますが、 何が違うのか?どう使い分けるか? と、気になりましたので少し試してみました。 実行環境は、 OS: Windows 8.1 (64bit) CPU: Core 2 Quad Q9550 2.83GHz コンパイラ: Visual Studio 2013の…
ソケットに対してcloseを呼び出して、TCPコネクションを切断すると切断をリセットされた(エラーメッセージだと'Connection reset by peer'など)と判断される場合があります。 この場合、TCPヘッダにRSTフラグがセットされています。 同じようにcloseを呼び…
Pythonからdllを読み込もうとして失敗しました。 SetMouse.dllなる動的ライブラリをあらかじめ作成して、 import ctypes dll = ctypes.windll.SetMous と、すると OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。 などと読み込…
Windows なのに、ターミナルを使うお話。 c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat にあるようなバッチファイルを呼び出せば、VCコンパイラのために環境変数をセットしてくれます。 (上記は、私のPCの場合。OSのバージョ…
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がシンプルである、よってはやい。などと疑いもなく信仰する人が多いように思いました。なのでやってみました。 PC1 <-----> PC2 のような一対一のLAN直結ですが。 何故こんなつなぎ方をするのか。もっともだと思いますが。まあ、ね。こう使う人も…