- 主题:请教一个C++的编译错误
#if !defined(_UNICODE) && !defined(UNICODE)
#define _UNICODE USED
#define UNICODE USED
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <tchar.h>
#if !defined(WIN32) && !defined(WIN32)
#error Only run on windows system
#endif
#if defined(_MSC_VER)
#include <Gdiplus.h>
#pragma comment(lib, "Gdi32.lib")
#pragma comment(lib, "Gdiplus.lib")
#pragma comment(lib, "Ole32.lib")
#else
#include <gdiplus\gdiplus.h>
#ifndef bool
#include <stdbool.h>
#endif
#endif
static const TCHAR IMAGE_TYPE[] = {_T("image/bmp"), _T("image/jpeg"), _T("image/gif"), _T("image/tiff"), _T("image/png"), NULL};
static const TCHAR IMAGE_SUFFIX[] = {_T(".bmp"), _T(".jpg"), _T(".gif"), _T(".tif"), _T(".png"), NULL};
==========================
g++ -c ex01.cpp -municode
编译报错啊,编译环境是gcc 8.3的32位环境。
--
FROM 124.78.136.*
这不是写的win32专用?用msvc编译。
#error Only run on windows system
--
FROM 123.115.163.*
他注释里也有mingw的编译选项,我把TCHAR改成char就过了,我也不知道是为啥。
vc编译没问题。
【 在 z16166 的大作中提到: 】
: 这不是写的win32专用?用msvc编译。
: #error Only run on windows system
--
FROM 116.231.61.*
TCHAR在UNICODE宏存在的情况下被展开为WCHAR
【 在 javame 的大作中提到: 】
: 他注释里也有mingw的编译选项,我把TCHAR改成char就过了,我也不知道是为啥。
: vc编译没问题。
--
FROM 27.91.71.*
编译报错你不贴错误信息,让人猜吗
--
FROM 125.71.196.*
-municode是mingw的选项
unicode模式下,TCHAR是不能改为char的。
【 在 javame 的大作中提到: 】
: 他注释里也有mingw的编译选项,我把TCHAR改成char就过了,我也不知道是为啥。
: vc编译没问题。
--
FROM 123.115.163.*
机器人你要求这么高
【 在 poocp 的大作中提到: 】
: 编译报错你不贴错误信息,让人猜吗
--
FROM 171.82.4.*
编译错误信息,我下午贴出来了。麻烦看一下,谢谢。
【 在 poocp 的大作中提到: 】
: 编译报错你不贴错误信息,让人猜吗
--
FROM 124.78.136.*
$ g++ -c ex01.cpp -municode
ex01.cpp:40:128: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
static const TCHAR* IMAGE_TYPE[] = {_T("image/bmp"), _T("image/jpeg"), _T("imag
e/gif"), _T("image/tiff"), _T("image/png"), NULL};
^
ex01.cpp:40:128: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
ex01.cpp:40:128: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
ex01.cpp:40:128: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
ex01.cpp:40:128: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
ex01.cpp:41:103: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
static const TCHAR* IMAGE_SUFFIX[] = {_T(".bmp"), _T(".jpg"), _T(".gif"), _T(".
tif"), _T(".png"), NULL};
^
ex01.cpp:41:103: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
ex01.cpp:41:103: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
ex01.cpp:41:103: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
ex01.cpp:41:103: error: cannot convert 'const char*' to 'const TCHAR*' {aka 'con
st wchar_t*'} in initialization
【 在 poocp (慢速随机指标) 的大作中提到: 】
: 编译报错你不贴错误信息,让人猜吗
--
FROM 124.78.15.*
这有问题,正常情况下 _T 和 TCHAR 的定义是一致的,要么都为wchar_t,要么都为char
这个错误信息说明这二者不一致了
找一下_T变成char(实际是char *)的原因
MSVC编译的不能用?
--
修改:z16166 FROM 123.115.163.*
FROM 123.115.163.*