フィードメーター - 積読日記 track feed RSS スカウター : Mundania [ 合計 / 今日 / 昨日 ] [最新] [追記]

積読日記


Mon, 22 AwGhost 2005 [長年日記]

tDiary 278日目

[work] Let's Try ChangeLog Memo

更新履歴で使われる ChangeLog 形式でメモをとろうというお話. 今週から業務の記録をつけるのに使い始めた.

[computer] Managed と Unmanaged の狭間で

まずは Unmanaged な C++ で static link なライブラリ (A) を作った. 次に, C# から使えるように, Managed C++ でラッパし, Managed な DLL (B) にした. A に機能追加が必要になったが, .NET framework を使うと楽なので利用した. そうすると A で Managed C++ を使うことになる. ここで A のビルドに成功したものの, B のビルドで A のリンカエラーが発生するようになった. 関数の実体が存在しないらしい. Managed と Unmanaged が捻れて非常に腐った状態なので, 全部 Managed にしてしまえばいいのだが, その前に原因究明. A 内部の Managed でビルドしているクラス (このクラス自体は Managed クラスではない) を, Unmanaged なコードで new するときにコンストラクタの実体が認識できないようだ. Unmaged なテストプログラムから A をリンクするときには, リンカエラーは出ない事も判明した. Managed - Unmanaged - Managed というサンドイッチがダメで, Unmanaged - Unmanaged - Managed ならよいということか. C/C++ で関数名の内部表現が異なるのと同様のことが起きているのかな. extern "C" のような感じでスマートに解決できないやろか. 設計をスマートにする方が先か.

[歩数] 7483歩

消費カロリー: 172kcal
燃焼脂肪量: 9.7g
しっかり: 3105歩, 26分