je le code qui utilise la macro USE_CONVERSION dans un projet C++ ...Faire sans USES_CONVERSION macro
Je me demandais si cela est bien écrit, (pas écrit par moi), et s'il y a de meilleures façons de faites-le, sans les macros USES_CONVERSION et W2A.
STDMETHODIMP CInterpreter::GetStringVar(BSTR bstrNamespace, BSTR bstrVar, BSTR *pbstrValue)
{
USES_CONVERSION;
try
{
if (!pbstrValue) return E_POINTER;
char* pszNamespace= W2A(_bstr_t(bstrNamespace).operator wchar_t*());
char* pszVar= W2A(_bstr_t(bstrVar).operator wchar_t*()); // Is this not better done another way????
char pszErrStr[kPYTHONERRBUFSIZE];
char pszStrValue[kPYTHONSTRVALUESIZE];
BOOL bResult= Python_GetStringVar(pszNamespace, pszVar, pszErrStr, pszStrValue, kPYTHONSTRVALUESIZE);
*pbstrValue= _bstr_t(pszStrValue).operator BSTR();
if (!bResult)
throw x::internal_error(A2W(pszErrStr));
return S_OK;
}
}
Comme il y a aussi un BSTR, il ressemble à des choses MFC/ATL de Microsoft. Veuillez marquer en conséquence. – MSalters
BSTR est un type Win32 (Platform SDK). _bstr_t fait également partie du Platform SDK (il est utilisé par #import). – reece