许多嵌入式Mono在单个应用程序中

时间:2014-09-19 16:59:19

标签: c++ mono

可以在同一个应用程序中放置许多不同的Mono Runtime吗? 我成功地将Mono嵌入到我的应用程序中,但是想要启动许多不同的Mono Runtime,当我尝试时,它会引发异常。 我之所以需要不同的运行时而不是不同的AppDomain,是因为我需要将每个应用程序运行到不同的工作目录中

void newEnvironment(int argc, _TCHAR* argv[])
{
    MonoDomain *m_pRootDomain;
    MonoImage *m_pClassLibraryImage;

    MonoClass *m_pClassLibraryManagerClass;
    MonoObject *m_pClassLibraryManager;

    mono_debug_init(MONO_DEBUG_FORMAT_MONO);

    mono_set_dirs(PathUtil::GetLibDirectory().c_str(), PathUtil::GetConfigDirectory().c_str());

    m_pRootDomain = mono_jit_init_version("MonoApplication", "v4.0.30319");

    MonoAssembly *pMonoAssembly = mono_domain_assembly_open(m_pRootDomain, PathUtil::GetBinDirectory().append("ClassLibrary.exe").c_str());

    mono_jit_exec(m_pRootDomain, pMonoAssembly, argc, argv);
}

int _tmain(int argc, _TCHAR* argv[])
{
    // Required for mdb's to load for detailed stack traces etc.

    for (int i = 0; i < 5; i++)
    {
        std::thread t1(newEnvironment, argc, argv);
    }
    char name[256];
    std::cin.getline(name, 256);
}

0 个答案:

没有答案