2017-01-04 7 views
1

私はC#のWindowsフォームアプリケーション(Program_Ref)を参照し、同様の機能を持つ新しいプログラム(Program_A)を書いてみます。アプリケーションは捕まってしまった()第二回は

「Find Device」は、ベンダーIDと製品IDを使用して特定のUSBデバイスを見つけることを意味します。

起動時に2つのアプリケーションがうまく動作しますが、「デバイスの検索」機能を再度使用しようとすると、アプリケーション全体(UIを含む)が停止します。

逆に、サンプルアプリケーションは正常に動作します。

問題が[STAThread]であるとは限りません。

Ref.cs

public class Ref 
{ 
    internal static FrmMain FrmMy; 

    public static void Main() 
    { 
    FrmMy = new FrmMain(); 
    Application.Run(FrmMy); 
    } 
} 

FrmMain.cs

internal class FrmMain : Form 
{ 
    // Other codes... 

    [STAThread] 
    internal static void Main() { Application.Run(new FrmMain()); } 
} 

そして、次のコードは私です:

A.cs ここでは、2つのプログラム間の違いがあります

public class A 
{ 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 
} 

のForm1.cs

public partial class Form1 : Form 
{ 
    // Other codes... 
    // There's no entry point 
} 

私はそれらの違いを把握することはできませんし、どのように問題を解決するために?

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

答えて

0

幸いにも、あなたと共有して問題を解決する解決策を見つけました。
What is this error: System.Runtime.InteropServices.COMException?

しかし、私のプログラムにほとんど差があります:ここで

は、私が見つけた解決策です
Project Properties -> Build -> Prefer 32-bit

は、私が「好む32ビット」オプションの選択、およびアプリケーションの動作をキャンセル罰金 ソリューションが誰かを助けることを願って、ありがとう。

関連する問題