私はこれをフォローしていますhttp://www.codeproject.com/Articles/10020/Using-managed-code-in-an-unmanaged-application
この例は、次の3つのバイナリで構成されています。
- C#コード
- C ++/CLIコード
- C++コード
C++コードはC++/ CLIコードを呼び出し、次にC#コードを呼び出して、C ++からC#コードを実行する方法を実現します。
問題は、C ++ / CLIが.dllとしてコンパイルされているため、.libにコンパイルしようとすると、C++コードがC++/CLIコードとリンクされて失敗することです。
そのため、最終結果は2つのバイナリのみで構成されます。
- C#コード
- C ++ --LINK-- C ++/CLIコード
エラー
Error 1 error LNK2019: unresolved external symbol "__declspec(dllimport) public: static void __cdecl IMessageBoxWrapper::Destroy(class IMessageBoxWrapper *)" (__imp_?Destroy@IMessageBoxWrapper@@SAXPAV1@@Z) referenced in function _main C:\Users\Zero\Desktop\UmanagedApp\UmanagedApp\main.obj UmanagedApp
Error 2 error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class IMessageBoxWrapper * __cdecl IMessageBoxWrapper::CreateInstance(void)" (__imp_?CreateInstance@IMessageBoxWrapper@@SAPAV1@XZ) referenced in function _main C:\Users\Zero\Desktop\UmanagedApp\UmanagedApp\main.obj UmanagedApp