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 已正确添加到编译器参数列表中。