gpt4 book ai didi

c# - 将非托管 C++ 项目移植到 C#

转载 作者:搜寻专家 更新时间:2023-10-31 01:21:44 24 4
gpt4 key购买 nike

我需要将 C/C++ 非托管项目 (VS 2008) 移植到 C#(最好是 .net 3.5)。是否有任何转换帮助 工具;让我们说点什么 翻译代码语法和 要求您验证/修改每个 问题点(我猜我在做梦......)

我在哪里可以找到有关此翻译的一些有用的指南或文章。如果它们包含以下特定提示,它们将非常有用:

extern variables should be set in public static classes

(我不知道,我猜...)

请不要像“你可以从 .net 调用你的 c++ dll”这样的建议,因为我知道这是可能的,但我不能。注意:

  • C/C++ 项目仅使用 STL 和其他基本功能,无第三方图书馆等
  • 我不能直接使用或包装来自 C# 因为我们公司需要维护/修改代码,我们非常C# 比 C++ 更熟练。

最佳答案

转换它比包装它并付钱请自由职业者(像我)通过每隔几个月(或每隔几年)为您更改 C++ 代码来帮助您,当您需要制作一个改变。有一些机械方法,但更大的问题是您永远无法真正确定新的 C# 代码与旧的 C++ 代码完全相同。我有一些客户试过这个,但大多数都放弃了,把工作扔掉了。成功的人做的很慢,像这样:

首先,您包装旧库并让您的 UI 或任何新代码(网络服务等)成功调用旧库。这让每个人都“物有所值”,并为您争取时间来解决“我们无法维护我们的旧代码”问题。您还开发了一个综合测试套件,以证明旧库对各种边缘情况和每隔几年才会在野外发生的奇怪事情所做的工作。随着时间的推移,您将功能从旧库移到新的 C# 库中,并更改调用代码以使用新库来实现该功能。你首先移动最不稳定的部分,即你最常更改的部分。在每个阶段,您都再次运行测试用例,以确保从 C++ 到 C# 的转换不会弄乱它计算的结果。也许其中有些你永远搬不出来,也许最后都搬走了。当您觉得无法维护自己的图书馆并且需要花钱请人为您做这件事的风险低于继续翻译它的成本时,您就会停止。

我建议您在开始时接触具有良好 C++ 技能的人。您可能会遇到对您来说意义不大的事情。但是您可以很快地从库中获取值(value),并且从长远来看仍然可以解决您的潜在问题。

关于c# - 将非托管 C++ 项目移植到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3582635/

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