Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Net中的非托管代码 < >我们在C++项目中有一个自定义的ListVIEW树型网格,它是从CeProject TeeGrand示例中构建的。随着时间的推移,代码已经被大量修改 我有一个要求将C++项目移植到C.ViWiFrm。我正在考虑为ListVIEW网格创建一个C++ DLL,并在WiFrase中与它进行互操作。_C#_Visual C++_Winforms Interop - Fatal编程技术网

C# Net中的非托管代码 < >我们在C++项目中有一个自定义的ListVIEW树型网格,它是从CeProject TeeGrand示例中构建的。随着时间的推移,代码已经被大量修改 我有一个要求将C++项目移植到C.ViWiFrm。我正在考虑为ListVIEW网格创建一个C++ DLL,并在WiFrase中与它进行互操作。

C# Net中的非托管代码 < >我们在C++项目中有一个自定义的ListVIEW树型网格,它是从CeProject TeeGrand示例中构建的。随着时间的推移,代码已经被大量修改 我有一个要求将C++项目移植到C.ViWiFrm。我正在考虑为ListVIEW网格创建一个C++ DLL,并在WiFrase中与它进行互操作。,c#,visual-c++,winforms-interop,C#,Visual C++,Winforms Interop,我在Winforms中使用非托管Listview控件是自找麻烦吗?我应该在Winforms中移植/重写listview吗?(一项我并不期待的任务)我认为最好用托管代码重新编写它 互操作性通常是有效的,但有一个原因是托管代码是首选的。运行时为您处理了很多事情,而且更易于维护。对于某些任务来说,跨越边界可能会有问题。例如,您还将失去代码访问安全性。有一些好消息 如果你不这样做,那么你总是需要一个.NET开发者和一个C++开发者来维护它。 c++/本机代码本身并没有什么问题,只是混合了两者。我只是觉得


我在Winforms中使用非托管Listview控件是自找麻烦吗?我应该在Winforms中移植/重写listview吗?(一项我并不期待的任务)

我认为最好用托管代码重新编写它

互操作性通常是有效的,但有一个原因是托管代码是首选的。运行时为您处理了很多事情,而且更易于维护。对于某些任务来说,跨越边界可能会有问题。例如,您还将失去代码访问安全性。有一些好消息

如果你不这样做,那么你总是需要一个.NET开发者和一个C++开发者来维护它。 c++/本机代码本身并没有什么问题,只是混合了两者。我只是觉得长期来说最好不要混在一起,除非你不得不这样做


也就是说,存在时间和预算限制。互操作的存在是有原因的。如果从商业角度来看,这绝对需要太长的时间来证明,我会撤回上述建议

如果我是你,我更喜欢用C#重写Listview,或者寻找一个用C#编写并用于Winforms的免费或付费网格

不要忘记,在完成此项工作后,您必须支持代码, 这可能包括修复bug和添加功能。 最好确切地知道您的代码是如何工作的以及如何调试它。 您还可以编写更适合您需要的Listview

<>这将是非常困难的,如果你使用这个C++ ListVIEW,并在WiFrm中使用它。 但如果你决定使用它,我可以想到两个选择:

  • 在C++/CLI中为Listview创建一个包装器,该包装器将保存对象并以C#显示数据,这意味着您必须编写大量转换代码才能将数据从Listview移动到C#对象,但它应该可以工作

  • 使用DllImport并将ListView用作数据源,我不确定您将如何准确地从中获取所有数据,但它阻止您编写丑陋的CLI代码

  • 所以,总结一下,我建议使用一种语言来进行UI代码,而我选择的UI语言是C语言,而不是C++。


    好运……/P>我想如果有人要求你从C++到C语言的端口,他们可能不希望移植的版本中有本机代码。唯一的要求是获得Win表单应用程序的外观和感觉。我正在探索如何做到这一点的选择。不太熟悉这一点如何工作?我还需要一个dll吗?对不起,我对它了解不多。请看这里:我明白您对所有必要的编组/清理代码的意思。我考虑互操作的唯一原因是时间和预算。此外,C++版本将继续存在,所以如果我们端口,我们有两个代码基础来维护。这真的取决于你。就个人而言,如果它是我们的代码,我会移植它,但我倾向于移植所有东西。为我们保持代码库的更新意味着以后的维护工作更加容易。但这听起来不是一个问题,我认为你有正当理由使用这个非托管版本,只要没有任何问题。谢谢SHHAR…我开始看到周围的C++版本会有什么混乱。除非我能找到一个免费/付费的电网,否则我将进行移植。我给你答案的支票。