shu*_*e87 8 c++ windows gcc porting
我目前正在移植一些Windows代码,并尝试将其用于Ubuntu.该项目最初是用VC++编译的,没有任何问题.另外我应该注意,这只需要在Ubuntu中工作,但更多平台独立的想法当然是受欢迎的.
大多数代码都易于移植,因为它主要是一个几乎没有OS特定部分的数值模拟项目.在移植版本中没有使用UNICODE,也没有任何需要支持它.
我想知道在尝试使用GCC编译此代码时的最佳实践,特别是:
什么被认为是最好的替代品:__ int64,_tmain和_TCHAR*?
谢谢!
Goz*_*Goz 13
对于64位:
#include <inttypes.h>
typedef int64_t __int64;
Run Code Online (Sandbox Code Playgroud)
至于TCHAR问题.我实际上发现TCHAR非常有用所以我有一个文件,其中包含我使用的所有_t函数.
例如
#ifdef UNICODE
#define _tcslen wcslen
#define _tcscpy wcscpy
#define _tcscpy_s wcscpy_s
#define _tcsncpy wcsncpy
#define _tcsncpy_s wcsncpy_s
#define _tcscat wcscat
#define _tcscat_s wcscat_s
#define _tcsupr wcsupr
#define _tcsupr_s wcsupr_s
#define _tcslwr wcslwr
#define _tcslwr_s wcslwr_s
#define _stprintf_s swprintf_s
#define _stprintf swprintf
#define _tprintf wprintf
#define _vstprintf_s vswprintf_s
#define _vstprintf vswprintf
#define _tscanf wscanf
#define TCHAR wchar_t
#else
#define _tcslen strlen
#define _tcscpy strcpy
#define _tcscpy_s strcpy_s
#define _tcsncpy strncpy
#define _tcsncpy_s strncpy_s
#define _tcscat strcat
#define _tcscat_s strcat_s
#define _tcsupr strupr
#define _tcsupr_s strupr_s
#define _tcslwr strlwr
#define _tcslwr_s strlwr_s
#define _stprintf_s sprintf_s
#define _stprintf sprintf
#define _tprintf printf
#define _vstprintf_s vsprintf_s
#define _vstprintf vsprintf
#define _tscanf scanf
#define TCHAR char
#endif
Run Code Online (Sandbox Code Playgroud)
至于_s函数基本上......我实现了它们.这需要大约一个小时的编码,但它使项目移植到其他平台或编译器更容易.
归档时间: |
|
查看次数: |
12680 次 |
最近记录: |