Ske*_*ith 17 c++ linux porting
我正在尝试将Windows程序移植到Linux.我从来没有在Linux上编程,也不知道我在做什么.我已经设法消除了我在Linux上的G ++编译器中遇到的许多错误,并将大多数剩余的错误追溯到不存在的变量类型.
我拿出windows.h
文件,但我知道知道做什么用的做CALLBACK
,HANDLE
,DWORD
和HHOOK
变量.显然HANDLE
在Linux中没有相同的东西,所以我想我可能不得不重写一些结构.
任何人都可以解释我应该做什么或指向一些教程,教我如何在Linux中做这些事情?
如果有帮助,我的程序在RS-485网络上运行轮询循环.
Kon*_*lph 18
丢失的typedef(HANDLE
等)不是你的问题.你的问题是Linux和Windows有完全不同的API,你不能简单地希望通过替换一些类型定义将一个端口移植到另一个.
必须替换代码的完整平台相关部分.因此,您的第一步是学习Linux API.这样做的最好方法是获得一本关于Linux编程的书.
此外,Linux不像Windows那样为窗口管理提供默认API,因此如果您正在编写图形应用程序,那么您还需要选择窗口库.
Sou*_*sou 13
没有"等价",可以说,对于Linux中的windows.h,你需要逐个修复你的错误,或者更好,重写你的linux代码(如果它不是太复杂).
但是,如果我们忽略特定于Windows的API,您可以修复typedef错误(DWORD,HANDLE,...):
#ifndef DWORD
#define WINAPI
typedef unsigned long DWORD;
typedef short WCHAR;
typedef void * HANDLE;
#define MAX_PATH PATH_MAX
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int BOOL;
#endif
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57058 次 |
最近记录: |