関連記事
- 【#CSharp】C#が2025年「プログラミング言語オブ・ザ・イヤー」獲得 【2026年01月16日(金)】
- なんと!今週の土曜日も仕事してますた.来週の土曜日も仕事臭い.TCPソケット通信をゴリゴリ書いてる 【2025年08月30日(土)】
- 【ChatGPT o4】祝日なのに仕事ーバテすぎー今夜こそ絶命だーモルモルモル 【2025年03月20日(木)】
- 【#CSharp】制御系が動き出したべ 【2025年02月20日(木)】
- 【#CSharp】ひっさしぶりにガッツリなC#案件をやっているぞー 【2025年02月19日(水)】
2006年10月27日 10時13分 旧ブログより
アンマネージ環境下のCOMだなんだで、CoInitialize()はどうすんの?の話
昨夜から、疑問に思っているんですが…
MSXML.DLLとか、Direct-X(Direct Show)とかを利用するとき、
WindowsのCOMシステムを初期化するためにCoInitialize()関数
を一発目で呼び出さないといけないんですわ
んで、VC++でCOMシステムを利用するDLL(アンマネージDLL)として実装した場合…
今回のXMLの話とかですな
DLLを子として、VC++で作ったプログラムが親の場合は、
VC++親側のプログラムでCoInitialize()関数を呼び出せば、これは解決!
したらDLLを子として、C#で作ったプログラムが親の場合は??
ざっとしか調べてないけど、C#の命令にCoInitialize()関数代替の命令はなかったし
でもCOMシステムの初期化はどこかでいるだろうし
ひょっとして、.Net Frameworkが、よきに計らってくれるんで、
C#環境下では、いらない??>CoInitialize()関数
あとで、もうちっと突っ込んで調べてみよう
わかったら、ここに追記するということで
さっそく追記
C#環境下では要らないみたい>CoInitialize()
今回作ったXML入出力DLLに、CoInitialize()だけを呼び出す関数を実装して
C#側でわざわざ呼び出していたんですが
これを呼ばなくても、このDLLは正常稼動しますなぁ
まぁ、冷静に考えれば、.Net Framework自体がCOMインターフェースで
できているっぽいですしな
これで、疑問が解けたな
ゆうべ、CoInitialize()を呼ばずに、動かなかったのは、別の不具合だった、と(ww

コメント
雷が鳴ってる!今年初の雷キター
【#イラン戦争】イラン最高指導者ハメネイ師が死亡 トランプ大統領 SNSに投稿
土砂降りじゃー 春の雨が降りまくってる
今週は天気が悪いっぽい.ようやっと雨が定期的に降りだした
【#花粉症】目が腫れてキターくしゃみも止まらん.いよいよ花粉もピークか?
【#衆議院選挙2026 】自民 316議席獲得 単独で3分の2超 中道は49議席
【#衆議院選挙2026 】自民単独で過半数大きく上回り300議席に達する可能性
【BW55T】UPSが死んだ...ドロドロドロ😭これは人類滅亡間違いなし!なので発注(爆
広島カープの羽月隆太郎容疑者、「ゾンビたばこ」使用の疑いで逮捕