gpt4 book ai didi

c# - Windows 8.1 应用程序中的 UnmanagedType.CustomMarshaler

转载 作者:行者123 更新时间:2023-12-02 21:39:51 24 4
gpt4 key购买 nike

我正在尝试为 Windows 8.1 创建一个应用程序,作为应用程序的一部分,我正在尝试将 libgit2sharp 移植到 Windows 8.1 类库(而不是可移植类库)。我已经成功地转换了很多小问题,但项目的很大一部分使用了 UnmanagementType.CustomMarshalerICustomMarshaler,由于某种原因,它们似乎不受支持。有没有办法让它发挥作用,或者有办法绕过它?

谢谢。

编辑:如果您需要查看的话,这是 github url:https://github.com/mirhagk/windows8git

最佳答案

这里无法给出令人满意的答案。 System.Runtime.InteropServices 引用程序集的 System.Runtime.InteropServices.UnmanagedType 枚举显式省略 CustomMarshaler 枚举。当然,就像编译器告诉您的那样,ICustomMarshaler 接口(interface)也丢失了。

您可以伪造 UnmanagedType.CustomMarshaler 值 (44),但您无法伪造接口(interface),您编写的替换版本将具有错误的类型标识。

这一遗漏是故意的。

请注意,这可能不是您唯一的障碍。如果您移植 native 代码,那么您必须遵守已批准的 winapi 函数的白名单。这是一个short list 。当您使用 SDK header 时,它们会让您摆脱麻烦。但请确保永远不要修改 WINAPI_FAMILY 宏来解决编译错误,这并不能解决任何问题。仅仅复制 DLL 也是行不通的。如果您这样做,商店验证程序将拒绝您的应用。

关于c# - Windows 8.1 应用程序中的 UnmanagedType.CustomMarshaler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20618544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com