Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2012, 03:10   #1
zipo666
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 42
Смех Работа с иконками в с++(ошибка с LPCTSTR)

Вот сам код :
Код:
// icon.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <windows.h>
#include <shlobj.h>
#include <string>
#include <string.h>
#include <stdlib.h>
#include <cstdlib>
#include <iostream>
#pragma comment(lib, "shell32.lib")
#pragma comment(lib, "shlwapi.lib")
using namespace std;

void func(LPCTSTR pszShortcut)
{
   IPersistFile* ppf;
   IShellLink* pshl;
   WIN32_FIND_DATA wfd;

   // инициализируем COM-библиотеку
   ::CoInitialize(NULL);

   // создаем COM-объект и получаем указатель на IPersistFile
   ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
      IID_IPersistFile, reinterpret_cast<void**>(&ppf));

   // загружаем ярлык
#if defined(_UNICODE)
   ppf->Load(pszShortcut, STGM_READ);
#else
   LPWSTR pwszTemp = new WCHAR[_MAX_PATH];
   mbstowcs(pwszTemp, pszShortcut, _MAX_PATH);
   ppf->Load(pwszTemp, STGM_READ);
   delete[] pwszTemp;
#endif

   // получаем указатель на IShellLink
   ppf->QueryInterface(IID_IShellLink, reinterpret_cast<void**>(&pshl));

   // ищем объект, на который ссылается ярлык
   pshl->Resolve(NULL, SLR_ANY_MATCH | SLR_NO_UI);

   // получаем имя объекта и выводим его на консоль
   LPTSTR pszTarget = new TCHAR[_MAX_PATH];
   pshl->GetPath(pszTarget, _MAX_PATH, &wfd, 0);
   _putts(pszTarget);
   delete[] pszTarget;

   // убираем за собой
   pshl->Release();
   ppf->Release();

   // завершаем работу с COM-библиотекой
   ::CoFreeUnusedLibraries();
   ::CoUninitialize();
}

int _tmain(int argc, _TCHAR* argv[])
{
	LPCTSTR s = '0';//тут тип ирорка показывается 
	func(s);
	system("PAUSE");
	return 0;
}
Ошибка вот такая , ыть :
инициализация: невозможно преобразовать 'char' в 'LPCTSTR'
Как это исправить можно , заранее благодарю , ыть !

Последний раз редактировалось zipo666; 10.02.2012 в 03:31.
zipo666 вне форума Ответить с цитированием
Старый 10.02.2012, 03:36   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от zipo666 Посмотреть сообщение
int _tmain(int argc, _TCHAR* argv[])
{
LPCTSTR s = '0';//тут тип ирорка показывается
func(s);
system("PAUSE");
return 0;
}[/CODE]
Ошибка вот такая , ыть :
инициализация: невозможно преобразовать 'char' в 'LPCTSTR'
Как это исправить можно , заранее благодарю , ыть !
Код:
int _tmain(int argc, _TCHAR* argv[])
{
	LPCTSTR s = _T("0"); // LPCTSTR - строка, а передаёте символ (char)
	func(s);
	system("PAUSE");
	return 0;
}
netrino вне форума Ответить с цитированием
Старый 10.02.2012, 04:10   #3
zipo666
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 42
По умолчанию

Спасибо Ыть

Последний раз редактировалось zipo666; 10.02.2012 в 04:13.
zipo666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
int --> LPCTSTR LockHeart Общие вопросы C/C++ 3 17.11.2011 10:24
_bstr_t -> LPCWSTR-> LPCTSTR->LPCSTR Lindemann66 Qt и кроссплатформенное программирование С/С++ 1 17.08.2011 16:45
Работа с иконками Aleksey1989 Помощь студентам 4 01.10.2010 17:25
IdFTP:получить список с иконками tiger Работа с сетью в Delphi 4 28.01.2010 12:01
Проблема с иконками в TreeView [Smarik] Общие вопросы Delphi 4 01.02.2009 21:02