gpt4 book ai didi

.net - 在 Delphi Win32 中嵌入 Mono

转载 作者:行者123 更新时间:2023-12-03 14:52:22 25 4
gpt4 key购买 nike

有谁知道如何在 Delphi Win32 应用程序中嵌入 Mono 运行时的具体细节?官方文档对于 Win32 环境( www.mono-project.com/Embedding_Mono )没有太大帮助。

更新:

我非常熟悉 Delphi 中静态链接的变幻莫测,并且对 DLL 非常满意。 Mono 本身有依赖关系,所以多一个 DLL 确实没什么大不了的。关于 FPU 控制字的评论是我关心的问题之一,因为我相信 CG 默认设置与 Microsoft 工具不同。这是我认为需要的:

  • 从“C”到 Delphi 的 header 翻译(可能不太难)
  • Mono DLL 的编译(Mono 附带的那个可以用吗?)
  • 更好地理解 FPU 控制字 goctha(希望没有)
  • 来自因尝试此特技而留下战斗伤疤的人的一些反馈;)

更新(2011 年 6 月 12 日):

如果有人感兴趣,我刚刚在 Google Code 上找到了一个用于在 Delphi 应用程序中嵌入 Mono 的项目:

monoemb4delphi

最佳答案

Mono 似乎可以用 mingw 构建,尽管我发现的大多数引用文献都是从 Linux 交叉编译的,例如http://www.mono-project.com/Cross-compiling_Mono_for_Windows

我想说你的首要任务是搜索一个 libmono dll

  • 不使用 cygwin(相信我)
  • 已知可以在 mingw 之外工作(如果使用 C++,避免可能出现 mingw 特定的 C++ 损坏)
  • 最好带有可读的 header 。

如果您找到或将其构建为 DLL(以满足 mghie 的正确评论),请编写一个 header (如 Stijn 建议的那样),它就可以工作。

这并不是一件小事,VM 并不是一件小事,并且会在常见的跨语言问题域中出现问题:库初始化(顺序)、FPU 异常掩码和一般异常处理。这也是我说“知道在 mingw 之外工作”的部分原因,研究它在其他编译器中的接口(interface)可能会指导如何正确解决这个问题。

请注意,mono 教程有一个 mono lib 初始化程序,但这并不意味着 mono 使用的所有库都已正确初始化。特别是 mingw 的 libc 可能需要初始化,因为它们通常是通过 ctor 初始化的。我的(非常初始的)mingw 胶水代码在这里:

http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/ide/fpmingw.pas?view=markup

另一方面,在 DLL 中,它可能通过 DLL 初始化例程进行初始化。

我自己已经能够将 GDB 构建为库并使用它(尽管在 FPC 中静态地使用它,但我没有动力制作 DLL,因为这是一个选项)

请注意,如果您确实必须自己执行此操作,那么这不是一个简单的方法。

关于.net - 在 Delphi Win32 中嵌入 Mono,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/919275/

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