【问题标题】:Creating a Compact Framework DLL using ilasm.exe Assembler使用 ilasm.exe 汇编器创建 Compact Framework DLL
【发布时间】:2014-03-03 20:00:37
【问题描述】:

所以我正在尝试修改 Compact Framework 以导出 C 函数。 它在完整框架上运行良好。

这里描述了所使用的方法。 https://sites.google.com/site/robertgiesecke/Home/uploads/csharpprojecttemplateforunmanagedexports

无论如何,问题似乎在于,如果我将 Compact Framework Dll 拆解然后重新组装,它似乎会将其重新组装为 Full Framework Dll。

知道如何将其重新组装为 Compact Framework Dll。

【问题讨论】:

  • 您为什么不为您的互操作使用单独的 DLL?
  • 因为它是一个插件类型的 DLL,需要导出为 C 函数。它在不支持托管 c++ 的 Windows CE 上

标签: c# compact-framework cil ilasm


【解决方案1】:

没有合理的方法可以做到这一点。

Compact Framework 编译器支持 C# 和 VB.NET。从未支持托管 C++,尽管在某些实验中可以将其用于生成程序集。问题是 CF 不支持 .NET 通常使用的所有操作码,因此即使您设法让它为 CF 目标构建,也无法保证它不会放入不受支持的操作码( CF 编译器会为您执行此过滤)。

您遇到的另一个问题是本机代码(无论加载您的 DLL 的内容)无法在紧凑框架中托管 CLR - EE 托管的管道根本不存在于托管应用程序进程之外。因此,即使如果您以某种方式让您的 DLL 进行编译、导出入口点并且没有任何无效的操作码,本机进程也无法启动 EE 以加载程序集中的托管位。

【讨论】:

    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多