В настоящее время я пытаюсь вызвать конструктор класса Vinny, но когда я вызываю его, когда он наследует от Behavior, он выдает ошибку, даже с mono_runtime_init он все равно аварийно завершает работу. Когда я просматриваю ошибку в отладчике, он говорит что-то о том, что некоторая информация о методе имеет нулевой метод, когда я пытаюсь инициализировать объект обоими способами.
static void init() {
std::string libPath = (std::filesystem::current_path() / "lib").string();
std::string etcPath = (std::filesystem::current_path() / "etc").string();
mono_set_dirs(libPath.c_str(), etcPath.c_str());
domain = mono_jit_init("GameLib");
mono_add_internal_call("Frekit.Behaviour::AddCalls", addCalls);
mono_add_internal_call("Frekit.Behaviour::RemoveCalls", removeCalls);
mono_add_internal_call("Frekit.Module::GetInstanceID", getInstanceID);
coreAssembly = mono_domain_assembly_open(domain, "bin/Frekit.Core.dll");
assembly = mono_domain_assembly_open(domain, "bin/CSAssembly.dll");
coreImage = mono_assembly_get_image(coreAssembly);
image = mono_assembly_get_image(assembly);
MonoClass* vinnyClass = mono_class_from_name(image, "CSAssembly", "Vinny");
MonoClass* behaviourClass = mono_class_from_name(coreImage, "Frekit", "Behaviour");
MonoClass* moduleClass = mono_class_from_name(coreImage, "Frekit", "Module");
MonoObject* vinny = mono_object_new(domain, vinnyClass);
mono_runtime_object_init(vinny);
mono_runtime_invoke(earlyBirds[*(uint64_t*)mono_object_unbox(getInstanceID(vinny))], vinny, NULL, NULL);
}
C#
namespace CSAssembly
{
public class Vinny : Behaviour
{
public void Awake()
{
Console.WriteLine("Vinny woke up");
}
private void SayHi()
{
Console.WriteLine("Hi");
}
public Vinny()
{
Console.WriteLine("Vinny has been summoned");
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... erited-bas
Mono vm не позволяет мне вызывать конструктор класса с унаследованной базой ⇐ C#
Место общения программистов C#
1733529778
Anonymous
В настоящее время я пытаюсь вызвать конструктор класса Vinny, но когда я вызываю его, когда он наследует от Behavior, он выдает ошибку, даже с mono_runtime_init он все равно аварийно завершает работу. Когда я просматриваю ошибку в отладчике, он говорит что-то о том, что некоторая информация о методе имеет нулевой метод, когда я пытаюсь инициализировать объект обоими способами.
static void init() {
std::string libPath = (std::filesystem::current_path() / "lib").string();
std::string etcPath = (std::filesystem::current_path() / "etc").string();
mono_set_dirs(libPath.c_str(), etcPath.c_str());
domain = mono_jit_init("GameLib");
mono_add_internal_call("Frekit.Behaviour::AddCalls", addCalls);
mono_add_internal_call("Frekit.Behaviour::RemoveCalls", removeCalls);
mono_add_internal_call("Frekit.Module::GetInstanceID", getInstanceID);
coreAssembly = mono_domain_assembly_open(domain, "bin/Frekit.Core.dll");
assembly = mono_domain_assembly_open(domain, "bin/CSAssembly.dll");
coreImage = mono_assembly_get_image(coreAssembly);
image = mono_assembly_get_image(assembly);
MonoClass* vinnyClass = mono_class_from_name(image, "CSAssembly", "Vinny");
MonoClass* behaviourClass = mono_class_from_name(coreImage, "Frekit", "Behaviour");
MonoClass* moduleClass = mono_class_from_name(coreImage, "Frekit", "Module");
MonoObject* vinny = mono_object_new(domain, vinnyClass);
mono_runtime_object_init(vinny);
mono_runtime_invoke(earlyBirds[*(uint64_t*)mono_object_unbox(getInstanceID(vinny))], vinny, NULL, NULL);
}
C#
namespace CSAssembly
{
public class Vinny : Behaviour
{
public void Awake()
{
Console.WriteLine("Vinny woke up");
}
private void SayHi()
{
Console.WriteLine("Hi");
}
public Vinny()
{
Console.WriteLine("Vinny has been summoned");
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79259698/mono-vm-not-allowing-me-to-call-the-constructor-on-a-class-with-an-inherited-bas[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия