2012-04-05から1日間の記事一覧

DLLを経由しEXCEL VBAから参照渡しを使うには ByRef を利用する

VC

VBA Declare Function Foo Lib "test.dll" (ByRef result As Long) As LongVC++ extern "C" __declspec(dllexport) void __stdcall Foo(long &result);

共有メモリにあるポインタ変数に対してnewとかしても、そのエリアは共有じゃないよ

VC

あくまで #pragma data_seg("SHAREDMEM") 〜 #pragma data_seg()とかで囲んだエリアが共有。ここの中の変数にnewしたアドレスを入れて、別アプリに渡そうとしても、newしたメモリ空間は元アプリ固有のものだから、 そのアドレス使ったら、あっさり死ぬよ。 ※…

構造体の静的初期化

VC

配列の静的初期化なんて、めったにやらないから書き方忘れちゃってた。共有メモリで使う場合、初期化コード書かないと共有エリアになってくれないから、どうしても必要。 struct XXX{ char a[32]; char b[32]; char c[32]; char d[24]; } static struct XXX …