2012-01-16 13 views
1
  • 私はコンソールアプリケーションとwpfアプリケーションを持っています。私はskype4com.dll参照

    コンソールアプリケーションでdllを参照できませんがwpfでできます

    を追加した両方のアプリケーションに
  • コード:InvalidCastExeption旨:

    タイプのCOMオブジェクトをキャストすることができません「システムをSKYPE4COMLib.Skype oSkype = new SKYPE4COMLib.Skype();

ができます.__ ComObject 'をインターフェイスタイプ' SKYPE4COMLib.Skype 'に変更します。この操作はIID '{B1878BFE-53D3-402E-8C86-190B19AF70D5}'のインターフェイスのCOMコンポーネントのQueryInterface呼び出しが次のエラーのために失敗したため失敗しました:このようなインターフェイスはサポートされていません(HRESULT:0x80004002(E_NOINTERFACE)例外) 。

私はwpfアプリケーションで同じコード行を実行しても例外はありません。なぜ!?


私のコンソールアプリケーションは、skypeが更新されるまで素晴らしいものでした。私はskypeをアンインストールし、問題を解決しようとするためにもう一度インストールしたが、それは役に立たなかった。

答えて

0

後(それはあなたが実行されている.NETのバージョンだ場合)長時間試してみましたwpfアプリケーションを必要な参照とクラスを追加してコンソールアプリケーションにする場所を決めました。私が比較して、私が追加した場合、私が追加した場合:

[System.STAThreadAttribute()] 

メインメソッドにそれが動作する!!!!!

この結果、私の主な方法は以下のようになります:

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ConsoleApplication3 
{ 

    class Program 
    { 
     [System.STAThreadAttribute()]     
     static void Main(string[] args) 
     { 
      SKYPE4COMLib.Skype oSkype = new SKYPE4COMLib.Skype(); 
     } 
    } 
} 

asp.netには主な方法はありません。私が知っているものではない。 asp.netではAspCompat属性をtrueに追加する必要がありました。印象的だった

<%@ Page AspCompat="true" Language="C#" .... etc 
7

クライアントプロファイルをコンソールアプリケーションに使用しないでください。完全な.Netバージョンに設定してください。

あなたは、プロジェクトのプロパティに行くことによってそれを変更 - >アプリケーション - >ターゲットフレームワーク(ドロップダウン) - > .NET Frameworkの4に設定し

+0

ありがとう:

ので、私のasp.netのaspxページは、今のように見えます。 –

+0

それは私のコンソールアプリケーション用に修正されましたが、私の.aspアプリケーション用ではありませんでした。私はそれが私のコンソールアプリケーションで動作するつもりだったら、私のASPアプリケーションで動作するつもりだと思った。 1時間前にskypeが更新されるまでうまくいきました。 –

関連する問題