ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

20.09.2008, 20:41
|
|
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме: 233095
Репутация:
21
|
|
Есть такой вопросик: почему не работает ф-я CharToOem() в Visual Studio2008(C++9), тоесть ругается с ошибкой
error C2664: 'CharToOemW' : cannot convert parameter 1 from 'char [7]' to 'LPCWSTR'
В С++ 6 все отлично работало, а тут не хочет, может кто знает в чем тут проблема?
char z[] = "ПревеД";
CharToOem(z,z);
Последний раз редактировалось horlyk; 20.09.2008 в 21:06..
|
|
|

20.09.2008, 21:19
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Юзай уникод, ВС9 заточена под уникод
wchar_t *wcString = L"Preved";
|
|
|

20.09.2008, 21:47
|
|
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме: 233095
Репутация:
21
|
|
а немного по подробнее можно? как к примеру вывести на консольный экран:
char z[] = "ПревеД";
puts(z);
чтобы на консоле отображало ПревеД а не хз что. А то я попробовал то что ты написал, так там цифры одни.
И еще, можно както глобально делать перекодировку в ср1251 без CharToOem()? а то немного напряжно постоянно использовать эту ф-ю для каждой переменной.
И все же, как тут правильно использовать CharToOem()? интересно всетаки что они изменили.
|
|
|

20.09.2008, 22:25
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
horlyk, первый параметр CharToOem - источник, второй - приемник. Просто IMHO, я бы не совмещал их. Хз что может произойти, это, конечно, зависит от реализации.
Тем более NecroSoft MSDN вот что выдает
Return Value
The return value is always nonzero except when you pass the same address to lpszSrc and lpszDst in the wide-character version of the function. In this case the function returns zero and GetLastError returns ERROR_INVALID_ADDRESS.
Так... теперь немножко теории.
wchar_t это по сути дело тот же short. Потому, используя, cout ты получаешь на выходе цифры.
Теперь перейдет в "раздел как это решить".
использовать wcout. Он нормально вывод уникод. Можешь написать свою функцию, которая будет вызывать CharToOem и выводить. Можешь вызывать
setlocale(LC_ALL, "Russian");
она тоже ничего 
|
|
|

21.09.2008, 12:39
|
|
Участник форума
Регистрация: 11.04.2007
Сообщений: 219
Провел на форуме: 982101
Репутация:
13
|
|
а лутше просто поставь в настройках проекта мульти байт код и должно работать.
|
|
|

21.09.2008, 13:31
|
|
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме: 233095
Репутация:
21
|
|
чет я немного не догоняю, wcout тож не хочет русские букви выводить.
wchar_t z[7] = L"ПревеД";
wcout << z << endl;
пробовал и просто чар. Плз, напишите ктото маленький примерчик.
|
|
|

21.09.2008, 15:31
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Код:
#include <iostream>
#include "stdafx.h"
using std::wcout;
int _tmain()
{
wchar_t *wcString = L"ненене";
setlocale(LC_ALL, "Russian");
wcout << L"дадада!" << L" " << wcString << std::endl;
_wsystem(L"pause");
return 0;
}
|
|
|

21.09.2008, 21:26
|
|
Постоянный
Регистрация: 08.01.2006
Сообщений: 865
Провел на форуме: 3279330
Репутация:
343
|
|
как прописать свою софтинку в автозагрузку? (нужен пример кода)
|
|
|

21.09.2008, 21:40
|
|
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме: 4226446
Репутация:
1564
|
|
2bxN5
http://www.softholm.com/articles/register.html
|
|
|

22.09.2008, 19:50
|
|
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме: 800727
Репутация:
83
|
|
тэк-с, вроде где-то пробегала пред моими глазами инфа о том, что это может сама консоль не поддерживать (русский язык имею ввиду)
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|