Web カメラのサポートを C# ソリューションに統合しようとしています。まず、Touchless.Vision から素晴らしい例を学びました。3 つのコンポーネントを含む C# ソリューションが含まれています。 - 1 つの Windows フォーム プロジェクト (C#、任意の CPU) - 1 つのラッパー プロジェクト (C#、任意の CPU) - WebCamLib プロジェクト (C++、x64)
Win7 x64 を使用しています。したがって、例は正常に機能します。少なくとも、C ライブラリ/プロジェクトのプラットフォーム ターゲットを Win32 から x64 に変更した瞬間から。
しかし、別の C# ソリューションの下に 2 つのプロジェクト (C# ラッパーと C++ プロジェクト) を追加しました。C++ プロジェクトからメソッドを呼び出すと、常に失敗するようになりました。
System.BadImageFormatException was unhandled by user code
Message="Could not load file or assembly 'WebCamLib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format."
Source="Touchless.Vision"
FileName="WebCamLib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
FusionLog=""
StackTrace:
at Touchless.Vision.Camera.CameraService.<BuildCameraList>d__0.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Touchless.Vision.Camera.CameraService.get_AvailableCameras() in C:\CustomWare.NET\CustomWare\WebCamWrapper\Camera\CameraService.cs:line 40
このソリューションでは、AnyCPU プラットフォームも使用されます。プラットフォームに基づく競合があってはならないと思います。
これら2つのケースの違いは何ですか?何を確認すればよいですか?