- - PR -
ASP.NETからCOMコンポーネントを使用するには
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-26 22:47
OS:WinXPPro
VS:2003 いつも参考にさせていただいております。 表題の通り、ASP.NETからCOMコンポーネントの使用ではまっております。 現象は一言、CreateObjectでエラーになります。 そもそもCOMについて全く知識がないのですが、このCOMはASP(ActiveServerPage)にて すでに使用されているものです。 これをASP.NETにて呼び出そうと色々調べまして、以下の手順を踏みました。 1. COMタイプライブラリからメタデータDLLを作成する。 tlbimp 提供されたCOM.dll /out:MyASPCOM.dll 2. VSの参照設定から参照の追加をする この時、COMタグの中には出てこないので参照ボタンから直接 「MyASPCOM.dll」を選択しています。←COMタグにでないのがすでにおかしい?? 3. USINGして使用 (コンパイルは通ります) using MyASPCOM MyASPCOM.TEST test = (MyASPCOM.TEST)Server.CreateObject"MyASPCOM.TEST"); // ↑ ここで起動時にエラーになります。 //ちなみに ↓ この書き方でもコンパイルは通りますが起動時エラーです //MyASPCOM.TEST test = new MyASPCOM.TESTClass(); COMに原因があるのか、COMを使用するにあたっての作業が足りないのかがわからず 困っております。 どなたかアドバイスいただければ大変ありがたいです。 何卒、宜しくお願いいたします。 | ||||
|
投稿日時: 2006-05-27 13:36
VisualStudioを使用しているのなら
自分で相互運用用のタイプライブラリを作成しなくても COMを参照設定すればIDEがかってにやってくれますよ。
エラー(例外?)の内容を詳しく教えてください (メッセージ、スタックとレース) #CreateObjectに括弧"("が無いですね | ||||
|
投稿日時: 2006-05-27 21:10
dcomcnfg で、ASPNET ユーザに起動の許可を設定してやる必要がある、とか?
| ||||
|
投稿日時: 2006-05-29 02:40
かるあさん、Jittaさん、ありがとうございます!
その後、提供されたDLLの依存関係をツールで調べたところ、 参照しているDLLが足りないことがわかりました。 なんだか最初の最初でつまづいていたようです。 月曜日にそのDLLを提供元に問合せることにしました。 お騒がせしましたが、まずここから再度チャレンジしてみます。 それでもうまくいかなかった場合、かるあさん、Jittaさんのアドバイスを 参考にさせていただきます。ありがとうございました。 (うまくいくといいなぁ・・・) | ||||
|
投稿日時: 2006-05-29 21:42
結局、足りないDLLの中に更に足りないDLLがあったりで
すったもんだしましたが、無事レジストリへの登録もでき、 Newすることができました。 これは一重に引継ぎがうまくいってないって事なんですね。反省。 ところで・・・ このCOMのあるメソッドのパラメタに「Cookies情報」があるんです。 すでにASPで使用されているCOMなので、そのサンプルコードを見ますと、 myMethode.test(Request.Cookies); となっております。 ほほぅと思い、ASP.NETにて同じようにコードを打とうとすると、 インテリセンスに出るパラメタの型は、Request.Cookiesの部分がstringに なってるんですねぇ・・・。 これはVisualStudioのIDEにより、このような型変換?になってしまったんですかねぇ? ともかく、どうにもRequest.Cookiesは渡せないわけです。 提供元に再度問合せてみますが、 何かお気づきの点ございますでしょうか? (とにかくCOMの知識が足りないもので・・・。) |
1