草庐IT

可移植

全部标签

c# - 将 iostream 输入代码从 C++ 移植到 C#

这是C++代码,用于读取缓存内存模拟的主内存地址轨迹:charhex[20];ifstreaminfile;infile.open(filename,ios::in);if(!infile){cout>hex;address=changebase(hex,base);}else{infile>>address;}set=(address/block_size)%no_set;tag=address/(block_size*no_set);}我已将其转换为C#代码:char[]hex=newchar[20];FileStreaminfile=newFileStream(filename,

c# - 将 C++ 移植到 C#

在我看来,C++和C#是非常相似的编程语言。如果需要将C++代码移植到C#是唯一受支持平台的平台,需要做多少工作?我是否应该准备好大部分C++代码需要重写为C#?或者,由于语言的相似性,重构应该非常容易和直接吗?我知道,这将取决于应用程序本身,但我问的是一般情况。 最佳答案 我最近完成了一个C++应用程序到C#的主要移植。总的来说,我认为这是一次愉快的经历。这些是我采取的步骤,它们可能适用于也可能不适用于您的申请。在C#中搭建“脚手架”,设计您的架构。如果您愿意,现在是对现有应用程序进行重大架构更改的时候了。准备好测试。我不能过分强

javascript - Webkit 移植指南

是否有关于如何将Webkit移植到新平台的综合文档?我对事物的JavaScript方面特别感兴趣。 最佳答案 在webkit的官方网站上,wiki上有一个HowToPort部分,定义非常明确。(http://trac.webkit.org/wiki/SuccessfulPortHowTo)(http://trac.webkit.org/wiki/WikiStart) 关于javascript-Webkit移植指南,我们在StackOverflow上找到一个类似的问题:

c++ - 是否存在用于将 C++ 代码移植到 64 位的自动转换工具?

我正在研究将大量(>1000万行)C++代码移植到64位的方法。我研究了静态代码分析器和编译器标志,现在我正在研究可以进行常见、重复更改的宏或其他工具。我已经编写了一些正则表达式以查看它们在实践中的工作情况,正如预期的那样,它们非常有效。也就是说,首先构建表达式需要一些时间,所以我想看看是否有此类表达式的列表或可以自动执行更改的软件工具。以下几行是要匹配和修复的代码的原型(prototype)示例。(需要澄清的是,这些行并不意味着代表单个代码块,而是从不同地方提取的行。)inti=0;longobjcount;intcount=channels.count(ch);for(intk=0

c++ - 从 Nvidia PTX 访问 bool (C++11) 数组的可移植方法

我需要对boolean数组进行GPU计算bool[](注意,不是std::vector)它是在CPU内存中创建的(使用C++11代码),然后通过cuMemCpy复制到GPU或类似的。第一个问题:sizeof(bool)报告1个字节。这是C++11标准保证的吗?第二个问题:是true(false)始终表示为1(0)(在unsignedchar表示中)还是编译器在这里有自由?(如果需要,它可以使用任何小于256的非零整数)第三个问题(特定于PTX):在PTX逻辑运算中or,xor等仅对大于8位的类型进行操作。那就是我可以对unsignedint进行逻辑运算与or.u32,,.但是自从C++

c++ - 可移植硬实时 C 或 C++ 原始以太网协议(protocol)库

我正在尝试创建一个具有硬实时功能的业余爱好者可移植机器人库(Windows和Linux)。它应该能够通过标准以太网连接到微Controller,将固件上传到该设备,通过现场总线连接到其他设备,并将固件上传到运行专用Controller的其他微Controller。如果需要硬实时,NIC将是RTnet支持的那些。我希望典型伺服速率至少为1kHz,但最好为2kHz或更高。它将运行一个完全自定义的协议(protocol)(不是TCP或UDPoverIP),以便开销最小并且高速现场总线可以在不接收或传输帧时饱和。然后可以解释以太网帧中的有效载荷或将其发送到连接的设备。1)我更喜欢将协议(pro

c++ - 在 32 位架构上优化可移植的 128 位整数移位

在业余时间,我一直在研究一个实用程序库,其中包括支持有符号/无符号128位整数。该库在某些情况下使用cpu-dispatching来利用simd指令,但需要可移植的后备,以便它可以在其他任何地方运行。最近我实现了128位移位的可移植回退。它工作正常并且运行速度相当快,但它没有我希望的那么快,尤其是在32位架构上。这是一个包含所有相关类型和功能的精简版本(包括64位版本以确保完整性):typedefuint32_tUInt32;typedefint32_tInt32;typedefuint64_tUInt64;typedefint64_tInt64;//Returns0xFFFFFFFF

c++ - 移植旧代码时如何处理类名冲突?

我正在尝试将一个旧库(据我所知不使用namespace)移植到现代编译器。我的目标之一无法区分System::TObject和::TObject(没有namespace)。System::TObject是编译器原生的。我试过一个using指令,即using::TObject;但这并没有做到。显而易见的解决方案是将所有原始库包装在一个命名空间中,然后按名称调用它——这样可以避免歧义。但这是最明智的解决方案吗?还有其他解决办法吗?添加命名空间需要更改一堆文件,我不知道以后是否会产生不必要的影响。 最佳答案 您可以按照Dib的建议进行操作

c++ - 如何(可移植地)使用 C++ 类层次结构和动态链接库

好吧,我知道可移植性不是C++的强项,但我必须让我的代码在Mac和Windows上运行。我想出了一个解决方案,但它并不完美,我很想看看是否有人可以提出更好的解决方案。我需要在几个DLL/bundle中使用一个类层次结构——例如,我有一个抽象基类BaseClass;然后我扫描给定的DLL目录,对于每个DLL,我寻找工厂方法BaseClass*CreateObject();-它返回一个“BaseClass”。我有一个“共享头文件”,它包含在“主可执行文件”和DLL中,它像这样声明BaseClass#ifdef_MAC#defineDECLSPEC#else#ifdefCOMPILING_D

c++ - 可移植 C++ 原子交换(Windows - GNU/Linux - MacOSX)

是否有免费的可移植(Windows、GNU/Linux和MacOSX)库提供无锁原子交换功能?如果没有,将如何针对这些平台中的每一个实现?(使用VC++或g++的x86)谢谢 最佳答案 有一个lock-free图书馆待审boost.另外,如果您深入研究boostsmartpointers的来源在库中,您会发现为多个平台内联的原子操作。另一个-英特尔ThreadingBuildingBlocks实现了atomic模板。 关于c++-可移植C++原子交换(Windows-GNU/Linux-