因此,我正在研究利用Mono C API的Windows专用项目,到目前为止,一直在使用宽字符字符串(wchar_t*
)。 (主要是为了支持长度超过260个字符的文件路径),但是我遇到了一个障碍,因为Mono应用程序域API似乎不支持从UTF16文件路径加载程序集。
我通常使用的API是mono_domain_assembly_open,但似乎没有任何其他替代API可以将name
参数用作const wchar_t*
或MonoString*
展望一下,我还想知道当类/方法名称包含非ANSI字符时,如何访问已加载程序集中的类/方法。 (由于.NET标识符可以包含任何有效的Unicode字符),像mono_method_desc_new这样的API仅具有基于char
的实现。
我知道我可以使用WideCharToMultiByte重新映射字符串,但是如果用户的文件路径或标识符名称包含非ANSI字符,则不确定要使用哪种代码页来确保功能正常。