Официальный сайт студ.городка НГТУ
Программирование и БД » конвертация типов С++ -> Windows 

#1  29.08.07 22:06

sav
Профиль

конвертация типов С++ -> Windows

как конвертировать и возомжно ли это между встроеными типами С++ и Windows
LPCSTR, TSTR -> string например
или что то подобное

Offline

#2  29.08.07 23:18

Maq
Профиль

Re: конвертация типов С++ -> Windows

TSRT str1;
LPCSTR str2 = (LPCSTR)str1;

Offline

#3  30.08.07 00:55

sav
Профиль

Re: конвертация типов С++ -> Windows

нет нет, меня интересует из LPCTSTR в string
я нашел, что LPCSTR - то же самое что и const char*,
есть ли способ сразу в string конверить?

Offline

#4  30.08.07 00:59

Re: конвертация типов С++ -> Windows

sav написал(а):

LPCSTR, TSTR -> string например

Плохой пример))) В С++ нет  встроенного типа string. Приведение типов работает так же, как и везде. Для некотроых   виндовозных типов есть классы-врапперы.

Offline

#5  30.08.07 11:54

Re: конвертация типов С++ -> Windows

sav написал(а):

нет нет, меня интересует из LPCTSTR в string
я нашел, что LPCSTR - то же самое что и const char*,
есть ли способ сразу в string конверить?

попробуй просто присвоить

Код: c++:

LPCSTR s;
...
string a = (const char*)s;

вот пример, который работает

Код: c++:

#include <STRING>
 
int main(int argc, char* argv[])
{
	std::string test;
	const char *s = "qwe";
	test = s;
	printf("%s", test.c_str());
	return 0;
}

Offline

#6  30.08.07 15:46

Re: конвертация типов С++ -> Windows

zombie написал(а):

В С++ нет  встроенного типа string.

с тех пор, как STL стала частью языка - есть :)

Исправлено Fatboy (30.08.07 15:47)

Offline

#7  05.09.07 10:31

sav
Профиль

Re: конвертация типов С++ -> Windows

конкретный пример из MSDN, который у меня не компилируется:

WIN32_FIND_DATA FindFileData;
char DirSpec[MAX_PATH];
HANDLE hFile=FindFirstFile(DirSpec, &FindFileData);

не может конвертировать из const char * to LPCWSTR

допустим, я вместо char DirSpec[MAX_PATH]; напишу:
wchar_t DirSpec[MAX_PATH];
тогда, вродебы не выдается ошибка во время компиляции, но если я хочу, чтобы пользователь ввел имя каталога:
cin.get(DirSpec, MAX_PATH);

теперь будет ругаться на cin.get, т.к. не сможет конвертировать в const char *

отсюда два вопроса:
1. как решить проблему, чтобы можно было пользоваться потоковыми классами С++ и функциями Windows
2. почему готовый пример MSDN не работает?

Offline

#8  05.09.07 15:20

Re: конвертация типов С++ -> Windows

Попробуй вместо cin, cout использовать wcin и wcout

Offline

#9  05.09.07 15:59

$up
Профиль

Re: конвертация типов С++ -> Windows

скорее всего примеры старые а ты пользуешься 2005 студией.

To set this compiler option in the Visual Studio development environment
Open the project's Property Pages dialog box. For details, see Modifying Project Settings.

Click the C/C++ folder.

Click the Language property page.

Modify the Treat wchar_t as Built-in Type property.

Offline

#10  05.09.07 16:19

sav
Профиль

Re: конвертация типов С++ -> Windows

$up написал(а):

скорее всего примеры старые а ты пользуешься 2005 студией.

To set this compiler option in the Visual Studio development environment
Open the project's Property Pages dialog box. For details, see Modifying Project Settings.

Click the C/C++ folder.

Click the Language property page.

Modify the Treat wchar_t as Built-in Type property.

вечером попробую обязательно

GrAnD написал(а):

Попробуй вместо cin, cout использовать wcin и wcout

то же самое мне на rsdn рекомендовали, можно ли, чтобы по умолчанию вызывались при написании cin, cout их unicode аналоги: wcin, wcout??

Offline

#11  05.09.07 20:06

Re: конвертация типов С++ -> Windows

#define

Offline

#12  06.09.07 10:56

$up
Профиль

Re: конвертация типов С++ -> Windows

sav написал(а):

можно ли, чтобы по умолчанию вызывались при написании cin, cout их unicode аналоги: wcin, wcout

стандартный путь

#ifdef UNICODE
#define _tcout    wcout
#else
#define _tcout cout
#endif

и везде использовать _tcout

Offline

Программирование и БД » конвертация типов С++ -> Windows 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.041 сек.
Выполнено 14 запросов.