Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу заставить работать CharToOem 
:(
    Опции темы
fara
Дата 7.6.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 15.3.2004
Где: С.-Петербург

Репутация: нет
Всего: 2



Среда: MS Visual Studio 2005.

Напишите пжл рабочий пример, который переведет строку из win в dos.

Тем по CharToOem начитался, но никак не могу откомпилить прогу. 
Я не могу понять что давать в кач-ве параметров этой ф-ии.

Спасибо 
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший!
PM MAIL ICQ   Вверх
fara
Дата 7.6.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 15.3.2004
Где: С.-Петербург

Репутация: нет
Всего: 2



Если глобально, то у меня работа с сокетами.
Пишу на С.

Клиент отправляет серверу строку, а тот конвертирует ее в DOS и возвращает клиенту. 
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший!
PM MAIL ICQ   Вверх
reloni
Дата 7.6.2006, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 10.5.2006
Где: Москва

Репутация: нет
Всего: 4



В шестой студии такой код работает:
Код

void rus(const char* txt)
{
    char tmp[256];
    CharToOem(txt, tmp);
                cout<<tmp<<endl;
}


В коде просто вызываем функцию: rus("Текст");
Насколько я понимаю это нужно. 
PM MAIL ICQ   Вверх
Earnest
Дата 7.6.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



BOOL CharToOem (LPCTSTR psSrc,LPSTR psDst);

psSrc - в зависимости от установок UNICODE, широкая или multibyte-строка 
psDst - буфер достаточной длины, всегда multibyte (т.е. char*).

Что тут непонятного? Покажи свой код и ошибки, выдаваемые компилятором. 


--------------------
...
PM   Вверх
fara
Дата 7.6.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 15.3.2004
Где: С.-Петербург

Репутация: нет
Всего: 2



Я не буду тут катать как идет подключение к сокету и тп:

Код

// отправлено байт
    int bytesSent;

    // получено байт
    int bytesRecv = SOCKET_ERROR;

    // принимаемая строка
    char recvbuf[32] = "";

    // отправляемая строка
    char sendbuf[32] = "";

    // принять сообщение от клиента
    // ф-ия возвращает кол-во принятых байт
    // recvbuf содержит принятое сообщение (размером не более 32 байт)
    bytesRecv = recv( m_socket, recvbuf, 32, 0 );
    l = strlen(recvbuf);
    // развернем строку
    for (i = 0; i < l; i++) {
        sendbuf[i] = recvbuf[(l - i - 1)];
    }

    printf( "Poluchili: %s\n", recvbuf);
    printf( "Poluchili byte: %ld\n", bytesRecv );
    
    // отправить сообщение клиенту
    // ф-ия возвращает кол-во отосланных байт
    bytesSent = send( m_socket, sendbuf, strlen(sendbuf), 0 );
    printf( "Otpravleno byte: %ld\n", bytesSent );
    printf( "Otpravili: %s\n", sendbuf );


В данном примере, отправляется строка но задом наперед. Мне же надо эту строку перевести в DOS. 
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший!
PM MAIL ICQ   Вверх
Earnest
Дата 7.6.2006, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



А что, 
Код

CharToOem (recvbuf, sendbuf);

не компилируется? Тогда скорее всего у тебя UNICODE проект. либо избавься от UNICODE (все равно ведь прямо с char работаешь). Либо явно вызывай CharToOemA.
Ну, естественно, чтобы правильно работало, строки должны иметь завершающие нули и влезать в свои буферы (вместе с нулями). 


--------------------
...
PM   Вверх
fara
Дата 7.6.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 15.3.2004
Где: С.-Петербург

Репутация: нет
Всего: 2



как у нас любят объяснять сложным языком.

всем спасибо  smile  
--------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.