Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» MS VS.NET 2003 проблемы компиляции

Автор: Zozik
Дата сообщения: 24.12.2004 20:37
Вопрос конечно глупый, но всё же....
Как заставить приложение работать на другой машине?! где нет MS VS!!!!
у меня обычное консольное приложеие под win32...
#using <mscorlib.dll>
using namespace System;
тк использую Console::Write (нужно чтоб в косноли нормально отражались русские шрифты, как по другому сделать не знаю...cout выдаёт закарючки ((( )
Компилирую проект - нормально, запускается, всё ОК
но когда переношу на другую машину.... ничего не пашет
например на абсолютно голой машине с winXP говорит что не может инициализировать прогу и код ошибки куча 0 и 135 в конце!
на машине где стоял 2000 с билдером запросил кучу библиотек....дал... попросил запись в реестре framework по-моему.... но это всё не важно!
например в билдере, помню, надо было ставить галочку build with runtime packages и он все библиотеки в исполняемы файл запихивал а в MS VS как?

заранее благодарен!
Автор: Zimagor
Дата сообщения: 24.12.2004 20:48
Е-мое...
Судя по коду, ты пишешь приложение на managed c++. Это не "обычное консольное приложеие под win32", а .NET-приложение, для него необходим .NET Framework. MS VS тут ни при чем, хотя фреймворк входит в ее установку и тесно с ней интегрирован. Главное - на машине должен быть дотнет фреймворк. По-другому никак.
Автор: OldGopher
Дата сообщения: 24.12.2004 20:48
Стоит ли на этой "голой" Windows XP так называемый пакет Microsoft .NET Framework?

И что будет, если его поставить?
Автор: Zozik
Дата сообщения: 24.12.2004 21:03
ФАК, ну и дела....
ещё сильнее запутался....
не... не стоит...
ааа ....я так понимаю метод console::write мы можем юзать только в Console App (.NET)??? а если мы пишем дот нетовское приложение то нам надо framework ставить!
сакс....
а в Win 32 Console App есть функции нормального вывода русских шрифтов?
просто когда используются старые сишные функции или сиауты кодировка 866 я так понимаю а нужно чтоб было 1251 да?

Добавлено
а то используем примерно такое
strcpy(src,"Пакет: ");
CharToOem(src,dest);
printf(dest);

но это ж бредово!!
Автор: Zimagor
Дата сообщения: 24.12.2004 21:20
Я пишу на C#, поэтому насчет MC++ сказать не могу. Если собираешься писать под дотнет и знаешь С++, переходи на си шарп, он по синтаксису очень похож... У Console.Write() проблем с кириллицей нету...

Цитата:
сакс....

Да брось... Один раз поставить 20 с чем-то метровый фреймворк и радоваться жизни
Автор: fuxx
Дата сообщения: 24.12.2004 21:21
Не managed случай:

Ты разработываешь свою прогу в студии. В ней обычная виндовая кодировка
windows-1251. Твоя прога запускается в консоли. В ней другая кодировка cp866.

std::cout перед выводом на экран не транслирует одно в другое.

Побороть это можно по разному. Например Русский текст набить в консольном приложнии
в отдельный файл. Попробуй так сделать и ты увидишь что все в порядке. Можно просто конвертить строки перед выводом на экран с помошью функции CharToOem:


Код:
char b[256];

CharToOemBuff ( "Привет!\n", b, 256 );
Автор: Zozik
Дата сообщения: 24.12.2004 21:34
Спсибо ребят! я понял свои ошибки %))
буду юзать CharToOemBuff!

Zimagor, почему ты С++ называешь МС++? почему managed?
извини за глупые вопросы, но, просто, тяжеловато после билдера садиться за MSVS....

просто где я показываю преподу курсовик я не могу ничего ставить... (((
а и шарп вещи говоришь?)))
хмммм уже скачал книжечку в пдф
Автор: Zimagor
Дата сообщения: 24.12.2004 21:56

Цитата:
Zimagor, почему ты С++ называешь МС++? почему managed?
извини за глупые вопросы, но, просто, тяжеловато после билдера садиться за MSVS....


MC++ = Managed C++ = C++ with Managed Extensions. Это С++ для платформы .NET. Код под эту платформу компилится в управляемый (managed) код. Почему управляемый - потому что он исполняется под управлением межъязыковой среды исполнения (CLR), части .NET фреймворка. Она проверяет (верифицирует) код и передает его jit-компилятору, который "на лету" преобразует его в машинный. Это одна из причин, почему без фреймворка не обойтись.
В обычном C++ нету конструкций типа
#using <mscorlib.dll>
using namespace System;

С# не просто "тоже вещь", это язык, заточенный под дотнет. Изучая его, придется изучать и всю платформу. Если не ошибаюсь, FCL (Framework Class Library) содержит более 7000 типов (классов, интерфейсов итд)
Автор: Zozik
Дата сообщения: 24.12.2004 22:53
хехе
ну в таком случае пока обойдусь с++ )
хотя по любому надо разбираться с MS VS и .NET....



Добавлено
ещё раз спасибо!!!
Автор: Zimagor
Дата сообщения: 24.12.2004 23:07
Не за что
У меня впечатление, что я тебя напугал перспективой изучения библиотек На самом деле, все не так сложно, особенно если ты разбираешься в с++ и в кодинге вообще...
Так что разбирайся потихоньку
Автор: Forward13
Дата сообщения: 25.12.2004 01:16
Да, среда .NET и в частности язык С# - мощные вещи.
Сам начал изучать недавно, очень много нового и интересного.

ЗЫ Сорри за

Страницы: 1

Предыдущая тема: DELPHI. Большая многоэтажная "шапка" в DBGrid


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.