Tag Archives: sphelper.h Compile Error

[Solved] sphelper.h Compile Error: error C4430/C2065/C2440/C2664

SAPI includes sphelper.h compilation error solutions. When using Microsoft Speech SDK 5.1 to develop speech recognition programs, the header file “sphelper.h” and the library file “sapi.lib” are included.
Error when compiling:

1>c:/program files/microsoft speech sdk 5.1/include/sphelper.h(769) :
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:/program files/microsoft speech sdk 5.1/include/sphelper.h(1419) :
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:/program files/microsoft speech sdk 5.1/include/sphelper.h(2373) :
error C2065: 'psz' : undeclared identifier 1>c:/program files/microsoft speech sdk 5.1/include/sphelper.h(2559) :
error C2440: 'initializing' : cannot convert from 'CSpDynamicString' to 'SPPHONEID *' 1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 1>c:/program files/microsoft speech sdk 5.1/include/sphelper.h(2633) :
error C2664: 'wcslen' : cannot convert parameter 1 from 'SPPHONEID *' to 'const wchar_t *' 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Line 769 const ulLenVendorPreferred = wcslen(pszVendorPreferred);

   Modify to:          const unsigned long ulLenVendorPreferred = wcslen(pszVendorPreferred);

Line 1418 static CoMemCopyWFEX(const WAVEFORMATEX * pSrc, WAVEFORMATEX ** ppCoMemWFEX)

   Modify to:         static HRESULT CoMemCopyWFEX(const WAVEFORMATEX * pSrc, WAVEFORMATEX ** ppCoMemWFEX)

Line 2372 for (const WCHAR * psz = (const WCHAR *)lParam; *psz; psz++) {}

    Modify to:         const WCHAR * psz; for (psz = (const WCHAR *)lParam; *psz; psz++) {}

Line 2559 SPPHONEID* pphoneId = dsPhoneId;

 Modify to:            SPPHONEID* pphoneId = (SPPHONEID*)((WCHAR *)dsPhoneId);

Line 2633 pphoneId += wcslen(pphoneId) + 1;

 Modify to:            pphoneId += wcslen((const wchar_t *)pphoneId) + 1;