【问题标题】:windows types to linuxwindows类型转linux
【发布时间】:2019-01-10 02:10:11
【问题描述】:

最近我将一个windows c++程序转换为linux,我写了一个.h文件来转换一些linux没有prgram使用的类型。

#define _MAX_PATH           260 /* max. length of full pathname */

#define HANDLE              int
#define MAX_PATH            260
#define TRUE                true 
#define FALSE               false

#define max(a,b)            (((a) > (b)) ? (a) : (b))
#define min(a,b)            (((a) < (b)) ? (a) : (b))

typedef int                 BOOL;
typedef unsigned long       DWORD;
typedef void                VOID;

typedef wchar_t             WCHAR;
typedef WCHAR               *LPWSTR;
typedef unsigned char       BOOLEAN;

我对windows类型不熟悉,用vs 2010选择类型然后调用F12,对吗?

【问题讨论】:

标签: c++ linux windows


【解决方案1】:

将 Windows 程序移植到 Linux 并不像您想象的那么容易,并且需要一些经验和时间的努力。您不能只更改或调整类型定义。您需要调查您的程序使用了哪些 API 和库。然后小心地将它们替换为 Linux 等效项。有些库是开箱即用的跨平台库,有些则不是。

有时根本无法移植程序。在这种情况下,从头开始开发 Linux 模拟甚至设计跨平台解决方案都更加容易。

【讨论】:

  • 感谢您的建议,我发现将代码从windows转移到linux很难,我改天试试,否则我会重写它。
  • @52coder 与其重写所有内容,不如用标准库调用(std::threadfilesystem 等)尽可能多地替换。然后为自己构建一个可移植层,抽象出 Windows 和 Linux 之间的任何其他 API 差异,并将所有特定于 Windows 的调用替换为对可移植层的调用。确保它可以工作,然后为 Linux 编写可移植层。
猜你喜欢
  • 2021-04-30
  • 2011-08-02
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 2013-04-02
  • 1970-01-01
相关资源
最近更新 更多