2017-06-08 10 views
0

Windows PCからPICマイクロコントローラにバルクUSB経由で通信するためにGUIを構築する必要があります。私はmpusbapi.dllをインターネット上の別のチュートリアルで見ていますが、私のプロジェクトではdllを正常に参照することはできません。 VS 2015はこのエラーを表示します:"mpusbapi.dll"を追加できませんでした。ファイルがアクセス可能であり、valisアセンブリまたはCOMコンポーネントであることを確認します。C#.NET WPFプロジェクトでmpusbapi.dllをロードできません

私は調査を行い、問題は管理されていないdllだと分かりましたので、DllImport経由で参照しようとしました。しかし、現時点では、どちらもうまくいきませんでした。

誰かが私を助けたり、私の目的を達成するためのよりよい方法を私に教えてくれると期待しています。 Error after try catch statetment

翻訳:

using System.Runtime.InteropServices; 

namespace GUI_ROBOT 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    {   
     public MainWindow() 
     {    
      InitializeComponent();     
     } 

     //Problem here 
     [DllImport("mpusbapi.dll",CallingConvention = CallingConvention.Cdecl)]  
     static extern UInt32 MPUSBGetDLLVersion(); 

     [DllImport("mpusbapi.dll")] 
     static extern UInt32 MPUSBGetDeviceCount(string pVID_PID);    

     private void btnStart_Click(object sender, RoutedEventArgs e) 
     { 
      try 
      { 
       string dCount = MPUSBGetDLLVersion().ToString();     
       listBox1.Items.Add(dCount);     
      } 
      catch (Exception j) 
      { 
       System.Windows.MessageBox.Show("Error: " + "\nMessage = " + 
j.Message); 
      }    
     } 
    } 
} 

try catch statetmentは私にフォロー結果与える "の.dllファイル 'mpuasbapi.dll' をロードCan't:指定されたモジュールを見つけるCan'tを"

私のプロジェクトでファイルを追加したので気にしていません。

ありがとう!

+0

は、コンパイル済みのexeファイルのディレクトリにあるDLLですか? – Fruchtzwerg

+0

プロジェクトフォルダ内にあるのですか?もしそうなら、いいえ –

+0

いいえ、私はコンパイルされたフォルダをinsinde意味します。コピーするdllのビルドアクションを設定します。 – Fruchtzwerg

答えて

0

問題は、.dllが出力フォルダにコピーされていないことでした.Fruchtzwerg氏は言いました。だから私はコメントで言うように.dllファイルのプロパティを変更しました。その後

[コメントを見る]私はこの問題は、この答えを使用して解決したmpusbapi.dll 32ビット/ 64ビットの競合た:Could not load file or assembly ... An attempt was made to load a program with an incorrect format (System.BadImageFormatException)

関連する問題