|
分類:[C#]
お世話になります。DD.です。
環境は VC++・C# の 2008 Express & XP です。
C++で「class __declspec( dllexport ) Derived」クラスを作成し、DLL化した後、 C++/CLIでmanagedな「CPlusLibWrapper::Wrapper」クラスを作成して「Derived」クラスをラップしました。
それをDLL(アセンブリ)化して C# で「CPlusToCS」というプロジェクトを作成し、 そのDLLを参照の追加から「参照」追加しました。 後は C# の Mainメソッド内から Wrapperクラスをインスタンス化しただけのサンプルを作成したのですが、 コンパイルは問題なく、実行時にタイトルの通りの現象が起こってしまいます。
FileNotFoundExceptionが発生し、 デバッガで詳細を見てみると、
{"指定されたモジュールが見つかりません。 (HRESULT からの例外: 0x8007007E)":null}
Source:"CPlusToCS" StackTrace: " 場所 CPlusToCS.Program.Main(String[] args)\r\n 場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)\r\n 場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)\r\n 場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()\r\n 場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)\r\n 場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n 場所 System.Threading.ThreadHelper.ThreadStart()"
となっていました。
なぜこのような事象が起こってしまったのか検討がつかず、 質問させて頂きました。
何が原因となっているのでしょうか? 他に必要な情報がありましたら、提示させてもらいます。
ちなみに、いずれのコードもただのサンプルで作成しただけですので、シンプルなものになっています。 以下、C# のコードのみ抜粋
using System; using System.Collections.Generic; using System.Linq; using System.Text; using CPlusLibWrapper;
namespace CPlusToCS { class Program { static void Main(string[] args) { using (Wrapper wrapper = new Wrapper()) { wrapper.Print(); Console.ReadLine(); } } } }
|