IShellFolder :: ParseDisplayName Ошибка компиляции в QT - PullRequest
0 голосов
/ 27 марта 2012

При использовании Visual Studio 2010 приведенный ниже код работает нормально:

IShellFolder *psfParent = NULL;
LPITEMIDLIST pidlSystem = NULL;
HRESULT hr;
QString sPath = "C:\\Users\\guest\\Desktop\\kannden"; // for QT
//wchar_t * path = "C:\\Users\\guest\\Desktop\\kannden"; for windows

hr = SHGetDesktopFolder(&psfParent);

if (SUCCEEDED(hr)) 
{
hr =psfParent->ParseDisplayName(NULL,NULL, path,0, &pidlSystem,NULL);
SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_IDLIST, pidlSystem, 0);
}

Но если я запускаю код в QT 4.7, я получаю ошибку:

нет соответствующей функции для вызова "IShellFolder :: ParseDispalyName (NULL, NULL, QString *, int, ITEMIDLIST **, NULL)

1 Ответ

0 голосов
/ 27 марта 2012

Вы передаете указатель на QString, когда (я считаю) ParseDisplayName ожидает указатель на wchar_t. Попробуйте:

hr = psfParent->ParseDisplayName(NULL,NULL, &QString::toWCharArray(sPath),0, &pidlSystem,NULL);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...