関連記事
- 【#CSHARP】ソリューション内でサービス,Winformアプリを混在で作成させ,バイナリ出力先を同じにするとサービスが起動しない 【2024年02月08日(木)】
- 【#PHP】謎な #Laravel 案件 引き渡したじ 【2024年01月11日(木)】
- 【C#】謎な改造アプリ,SIMD命令を導入して高速化しようか,思案中 【2023年11月14日(火)】
- Javaの”やらかし”でC#と人気逆転か 激変プログラミング言語人気ランキング 【2023年10月18日(水)】
- 【#CSHARP】次の案件のスケルトン書いてgitサーバに登録するなどと 【2023年05月16日(火)】
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
コメント
電子レンジが不調になったヤバス
【#地震】霧島山で有感地震 生駒高原のあたりか?(24/9/6)
奄美大島のマングース 環境省が根絶宣言
生ぬるい西風が吹いてるのぉ.大陸気団の南下はまだかっ!
【#台風】台風10号:台風に関する特別警報 発令予告が出た!鹿児島,宮崎(24/8/28)
【#台風】#台風10号:屋久島に線状降水帯が発生(24/8/28)
【#台風】養生テープ貼った(2年ぶり3回め)柿ピーも買ってきた!
今日も体調が悪いの.暑くないのに汗が酷い