VS2017 C++编译器报错C2664 cannot convert argument
VS2017 C++ compiler error C2664 can not convert argument
使用 VS2017 我使用 unicode 字符集
编译下面的代码
STDMETHODIMP Load(LPCOLESTR lpwszFileName, const AM_MEDIA_TYPE *pmt) {
TCHAR *szExtension = PathFindExtension(lpwszFileName);
我收到以下错误
error C2664: 'LPSTR PathFindExtensionA(LPCSTR)': cannot convert argument 1 from 'LPCOLESTR' to 'LPCSTR'
同样的代码在VS2008下编译正常。这里似乎有什么问题以及为什么编译器选择 PathFindExtenstion 的 ANSI 版本而不是 unicode 版本?
问题是 VS2017 变量
%(PreprocessorDefinitions)
预处理器定义中缺失。现在,定义器 /D _UNICODE 和 /D UNICODE 已正确添加到编译器参数列表中。
使用 VS2017 我使用 unicode 字符集
编译下面的代码STDMETHODIMP Load(LPCOLESTR lpwszFileName, const AM_MEDIA_TYPE *pmt) {
TCHAR *szExtension = PathFindExtension(lpwszFileName);
我收到以下错误
error C2664: 'LPSTR PathFindExtensionA(LPCSTR)': cannot convert argument 1 from 'LPCOLESTR' to 'LPCSTR'
同样的代码在VS2008下编译正常。这里似乎有什么问题以及为什么编译器选择 PathFindExtenstion 的 ANSI 版本而不是 unicode 版本?
问题是 VS2017 变量
%(PreprocessorDefinitions)
预处理器定义中缺失。现在,定义器 /D _UNICODE 和 /D UNICODE 已正确添加到编译器参数列表中。