人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualStdio2005のC++でのDLLを読出しについて質問です。

http://d.hatena.ne.jp/kasei_san/20070511
上記リンクの「バッドノウハウ」にあるように
DLL読み出し側のプロジェクトの「共通言語ランタイムサポート」が/clr:pureである場合に、
暗黙リンクでDLLを設定し、__declspec(dllimport) にてDLLのクラスをimportしようとすると、コンパイルエラーとなってしまいます。

「共通言語ランタイムサポート」が/clr:pureの場合の一般的なDLLの読み出し方法をご存知の方よろしくお願いいたします。

●質問者: かせいさん
●カテゴリ:コンピュータ
✍キーワード:C++ CLR DLL エラー クラス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kaorun
●35ポイント ベストアンサー
Visual C++ コンパイラ オプション
/clr (共通言語ランタイムのコンパイル) 
http://msdn2.microsoft.com/ja-jp/library/k8d11d4s(VS.80).aspx

CLRとは何かきちんと理解していますか?

/clr:pureオプションを使う場合、すべてはCLR上で動作するマネージドコードでなくてはならず、当然ネイティブコードを含むDLLを呼び出すこともできません。

つまり、質問されているような方法は不可能ということになります。

◎質問者からの返答

なるほど…。CLRについての理解が不足していました。

/clr:pure だと、非clrな(すなわち、アンマネージドコード)なコードを読み出すことは、不可能なのですね。

ただ、下にあるように特定の条件を満たせば、読み出すことも不可能ではない…と。

どうもありがとうございます。

非常に参考になりました!


2 ● kaorun
●35ポイント

失礼しました。

上記の回答は、私の理解不足と早とちりにより正しい答えとは言えないようです。

/clr:pureでもアンマネージDLLを呼ぶことは可能のようですね。

ものすごく手短に調べた範囲では、

Some interop Questions - C# to unmanaged DLL
http://www.thennews.com/d/n56/Some%20interop%20Questions%20C%20t...

などのポイントがあるようです。

細かい点で自分の理解もまだあやふやなので、この質問への私の回答に対するポイントは不要です。

◎質問者からの返答

いえいえ、私が理解していない部分について、回答いただけたので、ご迷惑で無ければ、ポイントを入れさせていただきます。

どうもありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ