在C 中使用单声道获得汇编类
Getting the Assembly classes using Mono in C++
我正在创建游戏引擎,并且我正在使用单声道实现C#脚本系统。
我正在加载汇编信息,没有问题,直到我需要创建单镜。要创建一个单镜,我需要单图,名称空间和班级名称:
MonoClass* mono_class_from_name (MonoImage *image, const char* name_space, const char *name)
但是,如果我没有创建DLL,我该怎么知道名称空间和名称?(因为是用用户使用引擎制作的编译脚本)。
我应该使用其他功能加载单镜吗?哪一个?
我找到了解决方案:p
std::list<MonoClass*> GetAssemblyClassList(MonoImage * image)
{
std::list<MonoClass*> class_list;
const MonoTableInfo* table_info = mono_image_get_table_info(image, MONO_TABLE_TYPEDEF);
int rows = mono_table_info_get_rows(table_info);
/* For each row, get some of its values */
for (int i = 0; i < rows; i++)
{
MonoClass* _class = nullptr;
uint32_t cols[MONO_TYPEDEF_SIZE];
mono_metadata_decode_row(table_info, i, cols, MONO_TYPEDEF_SIZE);
const char* name = mono_metadata_string_heap(image, cols[MONO_TYPEDEF_NAME]);
const char* name_space = mono_metadata_string_heap(image, cols[MONO_TYPEDEF_NAMESPACE]);
_class = mono_class_from_name(image, name_space, name);
class_list.push_back(_class);
}
return class_list
}
如果您想要更多信息:metada访问
相关文章:
- 为什么我的C++程序的程序集输出充满了 .ascii,没有汇编代码?
- 在 emscripten 网页汇编正在运行期间更新进度条?
- 为什么我们不编写可以处理C++标识符的汇编器和链接器?
- 在什么情况下,我想在 C/C++ 代码中使用内联汇编代码
- 为什么 memcpy() 和其他类似的函数使用汇编?
- [[可能]]和[[不太可能]]影响程序汇编的简单示例?
- 为什么 MSVC C++编译器将一个简单的 Hello World 扩展为 4000 行汇编?
- 如何使用 ALSA API 在应用程序中在单声道和立体声之间切换声音输出?
- 将具有嵌入式单声道的 C++ 函数指针传递给 C#
- 英特尔汇编与内部函数,AVX
- 这个x86汇编代码是如何接收和存储子程序返回的数据的
- Capstone cs_disasm仅反汇编一小部分代码
- C++和汇编中的对数
- 卤化物:X86汇编代码生成
- C++:汇编代码包含断言结果
- 在 g++4.4.7 中为复数算术生成快速汇编
- 混合 c++ 和汇编不能将多个参数从C++函数传递到程序集
- 如何使用 gcc 内联汇编器代码访问成员变量
- SSE 内联汇编和可能的 g++ 优化错误
- 在C 中使用单声道获得汇编类