質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

7323閲覧

quartz.dllの参照が出来ない

tanaka1

総合スコア18

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

1グッド

0クリップ

投稿2016/09/23 02:53

編集2016/09/23 09:21

###前提・実現したいこと
C#でdirectShowを使用したい。
※公開されているライブラリ「AForge」「directshow.Net」等は都合により使用出来ません。

###発生している問題・エラーメッセージ
参照マネージャー上の「参照」で、system32配下の「quartz.dll」をデスクトップ上にコピーし、
そのファイルを指定すると、
エラー「有効なアセンブリまたはCOMコンポーネントであることを確認して下さい」が発生し指定出来ない。

###補足情報(言語/FW/ツール等のバージョンなど)
C#
Windows7 64bit home
Visual studio 2013 pro

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

toki_td様
>以下に色々試した事を記載します。
●教えて頂いたレジストリを確認した所、
「データ」の値が「quartz.dll」となっておりました。(パス無し)
1:手動で「データ」の値を「C:\Windows\System32\quartz.dll」の形式に変更。
2:PC再起動後、VS2013上で「参照の追加」を確認。
3:リストに出た!!
4:関連するメソッドを使用できた。
※「sfc /scannow」実行 -> 整合性違反を検出しませんでした。

●タイプライブラリを持ってくる
1:VS2005上で「ActiveMovie control type library」の項目が参照しているファイル(dll)をもらう。
2:試す。
3:関連するメソッドを使用できた。

●タイプライブラリを作成
1:「tlbimp.exe」でsystem32配下の「quartz.dll」から「QuartzTypeLib.dll」を作成
2:VS2013上で「参照の追加」で作成したdllを指定。
3:関連するメソッドを使用できた。
※持ってきた場合と、「tlbimp.exe」で作成した場合のバイナリ比較すると結構異なっていた。

ということで本件は解決となります。
ご協力有難う御座いました。

投稿2016/09/26 02:25

tanaka1

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

DLLはコピーせずにsystem32の下にあるquartz.dllを直接参照でいけませんか?
それかCOMの「ActiveMovie control type library」の参照でも同じです。

投稿2016/09/23 04:29

toki_td

総合スコア2850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanaka1

2016/09/23 05:44

toki_td様  >DLLはコピーせずにsystem32の下にあるquartz.dllを直接参照でいけませんか?   「system32」「systemWOW64」配下の「quartz.dll」をそれぞれ試してみましたが同様のエラーメッセージが表示されます。  >COMの「ActiveMovie control type library」の参照でも同じです。  こちらに関しては、その名称の物はリストに存在しない為、  似たような「Microsoft ActiveMovie Control」というものを追加しました。  その後、「using QuartzTypeLib」を指定してもエラーとなります。  ここで質問なのですが、  「ActiveMovie control type library」と「Microsoft ActiveMovie Control」は同じ物なのでしょうか?
toki_td

2016/09/23 06:45

「Microsoft ~」はムービー再生用のActiveXコントロールだと思います。使い方は知りませんが。 なぜかわかりませんが「ActiveMovie~」の登録がされていないようですね。 無理矢理ですが管理者のコマンドプロンプトから regsvr32 c:\windows\system32\quartz.dll で再登録してみたらどうでしょう?
tanaka1

2016/09/23 09:20

toki_td様  >regsvr32 c:\windows\system32\quartz.dll  こちら試した所、やはり参照のリストに「ActiveMovie~」は表示されませんでした。  以下試した事  ①「system32」「sysWOW64」のそれぞれの「quartz.dll」を「regsvr32」で実行。   ⇒正常に登録完了    ⇒リストに出ず。  ② ①後に、visualstudioを再起動   ⇒リストに出ず。  ③ ①後に、PC再起動。   ⇒リストに出ず。  ※補足情報に記載していた環境で一点漏れていた箇所がありましたので以下に記載します。   windows7 -> windows7 64bit home
toki_td

2016/09/23 15:02

うちも64ビット(7 pro->10アップグレード)ですが特に問題ありません。 以下のレジストリキーありますか? HKEY_CLASSES_ROOT\TypeLib\{56A868B0-0AD4-11CE-B03A-0020AF0BA770}\1.0 規定値が「ActiveMovie~」になっていると思います。 その下の 0\win32 キーの規定値に quartz.dll のパスが書かれているはずです。 VSもこれを列挙していると思うのですが。 もしなかったらシステムがなんか変なので sfc /scannow 実行してみるとかしか思いつきません、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問