Ну... DECLARE_DYNCREATE - это просто обозначение, что CreateObject там есть.
Я к чему клоню: можно обойтись и без экспортов, если их нет.
А что остается?
У меня вполне работает такой простой тест:
case funcMetadata:
CMetadataContext* pCont0 = (CMetadataContext*)ppValue[0]->GetContext();
CMetadataContext* pCont = (CMetadataContext*)(*pCont0->GetRuntimeClass()->m_pfnCreateObject)();
pCont->pTaskDef = m_pMetaDataCont->pTaskDef;
rValue.AssignContext(pCont);
break;
Параметром 1 нужно передавать объект "Метаданные", чтобы определить адрес этой самой CreateObject().
Я что-то не знаю, как по-другому получить живой CMetadataContext, но конечно, что-то нужно придумывать, определять адрес 1 раз, а реализацию делать не методом, а свойством.
Ну ладно, пора бросать это дело.
Разработчики 1cpp доведут до ума, а я в этот день пойду выпью за твое здоровье!