А как написать простую программу под Windows с оболочкой, чтобы на неё нажать два раза и она запустилась. Это возможно? |
Вы имеете в виду с графическим окном? |
villain писал(а): А как написать простую программу под Windows с оболочкой, чтобы на неё нажать два раза и она запустилась. Это возможно?![]() хотяяя... сколько тебе лет? |
Уважаемый villain не обращайте внимание на выпады, на форумах это обычное дело. Продолжим беседу. |
Ну да, с графическим окном, просто я ещё в этом не разбираюсь, но очень хочу разобраться. Я хотел бы попробовать скомпилировать такую программу которая бы была с графическим окном, то есть, при нажатии на неё два раза, она запускалась как все программы, что бы ее не нужно было открывать через far и хотел бы посмотреть как она работает просто для примера, что бы было понятно какие программы можно делать на языке Visual С++ .NET |
Да продукт называется Visual С++ .NET, но здесь одна тонкость. На самом деле здесь два продукта: Visual С++ .NET и Visual C++.
.NET или dot net это новая технология, которую продвигает Microsoft. Для программ, написанных с помощью этой технологии необходима среда выполнения. Если вы установили у себя Visual Studio, то среда установилась автоматически. Вообще на диске со студией должна быть программа dotnetfx.exe, она и устанавливает эту среду. Это просто к сведению. Но вы то имели в виду, наверное, другое. Обычные Windows-программы. Лучше всего воспользоваться тем, шаблоном который предлагает мастер. Выберите шаблон win32 и мастер сделает вам приложение с минимальной функциональностью, по которому вы сможете изучать структуру приложения. |
Рекомендую http://firststeps.ru/ - там много информации и примеров. |
Не плохо. Я о таком приложении даже и не подумал. |
vladislav у вас на сайте и в вашей книге программирование на Visual C++.NET. Написано Для начала Вы можете разобрать следующую маленькую программу.
void main() { int a[10], b[10], i; for(i=0; i<10; i++) { a[i]=10; b[i]=15; printf(“%d\n %d\n”,a[i],b[i]); } } это и есть программа? она работает? Да кажется я сам сдесь запутался надо мне разобраться. |
Уважаемый vilain, пример который вы привели, это не пример программирования. В книге я его привел по другому поводу. Я просто хотел сравнить возможности оптимизатора программ Visual C и C Builder. Так вот компилятор C Builder не распознал подвоха (во всяком случае той версии, которую я проверял), а Visual C очень легко понял, что к чему и просто удалил не нужный массив. Так что это не пример программирования, во всяком случае не пример хорошего программирования. |
Сложный язык C++? vladislav вы много написали программ на С++? у вас ведь есть самая лучшая программа на C++ ? выложите её пожалуйста или мини игра на C++ или что-нибудь подобное только на С++ спасибо. Последний раз редактировалось: villain (2005.03.23 22:11.31), всего редактировалось 1 раз |
очень сложный... |
Для vilain.
Посьба, конечно, немного наивная. Объясню почему. Учиться писать по достаточно большой программе достаточно бессмысленно. Лучше писать свои не большие программы, а потом можно переходить к средним и так далее. а маленькие программы - кто их хранит. Я достаточно много писал на Си. Но к Си я пришел уже после Паскаля, а до этого был еще Бэйсик, а до него был Фортран. Ну и Ассемблер идет со мной уже много лет. Что касается Си. Больших программ для Windows я писал не так уж много. В 97-99 годах я написал достаточно большую программу - 16 тыс. строк. Программа осущестляла поиск ресурсов в локальной сети и выполнения определнного набора операций над ними. Сама идея мне кажется вполне актуальной. Во всяком случае программ с подобной идеей я еще не встречал (кстати xdsl эту программу видел). Писал я ее на C Borland 5.00, тогда к этой фирме я еще относился хорошо. Не давно мне пришла мысль перевести эту программу на Visual C и доработать ее. Но когда я стал смотреть текст программы, желание у меня пропало. Вот как я сейчас смотрю на программирование, мне кажется тот текст очень плохой. Хотя все работало. И я сейчас его уже стыжусь. Да и какой вам толк от 16 тыс. строк. Конечно, есть какие-то программы и поменьше, но это не правильный путь. Если вы действительно хотите научиться программировать на Си++, то я с удовольствием буду вас консультировать или на форуме или по почте. Кстати один студент с первого курса занимается на Си, я время от времени слежу за его успехами. Присоединяйтесь. Можете ко мне в институте подойти. |
vladislav большое спасибо за то, что вы мне уделяете время, да я действительно хочу научиться программировать на С++ и с удовольствием буду у вас консультироваться если вас это не затруднит. Вы не могли бы дать свой Е-mail? |
Конечно pirogov@shadrinsk.net |
vladislav писал(а): я написал достаточно большую программу - 16 тыс. строк. Программа осущестляла поиск ресурсов в локальной сети и выполнения определнного набора операций над ними. |
Ну, ну, а веб-сервер то причем. Загляни на wasm.ru там на ассемблере web-сервер и еще меньше строк.
И вообще, в простейшем случае, это достаточно примитивная программа. Вы вот полноценный веб-браузер напиши с интерпретором java script, тогда я посмотрю хаватит ли тебе 16000 строк. |
Веб-сервер не при чем, конечно, я и на перле веб-сервер видел, о-очень компактный. (Справедливости ради, у меня был далеко не самый простейший случай.) Мне правда интересно, что делает программа в 16000 строк. Расскажете? |
Вообще вы видимо не писали больших прикладных проектов, поэтому вас это удивило. Хороший прикладной проект, бухгалтерский, кадры и т.п. занимает не менее 20 тыс. строк. И это еще мало. И связано это с обилием различных функций, операций, сервисов, решения проблем безопасности и и т.п.
А что делала эта программа. Вот кратко: 1. Осуществление поиска файлов и каталогов по различным параметрам на локальных дисках, в архивах, а также сетевых ресурсах, к которым она могла автоматически подключаться, находя их в сети. 2. Для программы был предусмотрен простейший макро язык, с помощью которого можно было писать сценарии поиска и выполнения различных команда над найденными файлами. Можно было выполнять пакеты сценариев. Программа могла сидеть тихо и в фоновом режиме проверять сеть, осущестлвляя какие-то действия. В принципе там было довольно много различных функций, о которых в общем то мне уже не интересно говорить. Сейчас бы я ее сделал немного по другому и написал бы на Visual C. Мечта, однако, остается. |
по-видимому, moisha таки писал проекты... а чего вы как детишки - пиписьками меряетесь, у кого больше строк? _________________ Ин дер гросен фамилие нихт клювен клац-клац ![]() |
Это точно. По детски. |
"Большой" - понятие относительное. А писать Бухгалтерию/Кадры на С, по-моему, сомнительное удовольствие. Именно потому, что тогда без 20 000 строк, пожалуй, не обойтись.
vladislav писал(а): Программа осущестляла поиск ресурсов в локальной сети и выполнения определнного набора операций над ними. vladislav писал(а): Вы вот полноценный веб-браузер напиши с интерпретором java script, тогда я посмотрю хаватит ли тебе 16000 строк.Пожалуй, рано проанонсировал - ничего толком еще не готово, ну да ладно. P.S. А есть у кого-нибудь libpq.dll свежая? Поделитесь, а то у меня она на 2 года старше сервера, удивляюсь, как еще работает. |
Хоть PostgreSQL я и не интересуюсь, но задача наверное интересная. Нельзя ли по подробнее о клиенте. Под клиентом ведь обычно понимается программа, выполняющая конкретные прикладные задачи, а здесь, как я понимаю, речь идет о возможностях администрирования сервера или я не так понял. |
Да, клиент - для прикладных задач. Для администрирования из-под Windows есть pgAdmin, из-под Linux pgAccess - вполне удовлетворяют. Идея такая: заводим в базе отдельную схему (это там как-бы каталог для таблиц), в которой описываем т.н. "метаданные" (прижилось словцо от 1С) - то есть описания всех меню, панелей инструментов, форм, отчетов, и т.п. А мой клиент должен все это собрать, переварить и превратить в визуальную форму. Ну и язык нужен, понятно. Приходилось вам в MS Access'e приложения создавать? Мне - да. Кое-что очень даже понравилось. Вот, решил сделать что-то типа того, но в качестве хранилища данных решил взять Postgres (не только хранилище, кстати, полноценный SQL сервер), язык свой придумал, потому что 1) готовый язык мне в полной мере не поддержать, и 2) свой я заточил под удобсто (=> скорость) прямой интерпретации, к тому же 3) свой я могу расширять по мере надобности и приспосабливать под конкретные нужды.
Вопрос: зачем мне это надо? Очень просто: нигде не нашел графического клиента, который бы меня устроил. Можно, конечно, подождать, пока кто-нибудь что-нибудь напишет, да ждать уже, честно говоря, надоело. |
какая разница, какую БД использовать? _________________ Ин дер гросен фамилие нихт клювен клац-клац ![]() |
Не понял вопроса. Для реализации определенного проекта БД подбирается по потребностям. Нет, правда не понял. |
А-а-а... Наверно, имелось в виду: Почему ты говоришь "клиент для Postgres'a", можно же универсального написать, какая разница, где "метаданные" хранить?
Отвечаю: я использую "родную" клиентскую библиотеку Postgres'a (libqp), соответственно, внутри клиента обращаюсь к ее функциям. Можно и универсального сделать, но это потом когда-нибудь. А пока с чего-то надо же начать - я выбрал Postgres. Можно, конечно, было на ODBC нацелиться, но... |
vladislav купил вашу книгу Программирование на Visual С++.NET, книга хорошая, но сложновато в ней разобраться. Пожалуйста напишите мне простую программу для изучения. Типа такой: запускаю, на экране кнопка, на кнопке надпесь. "Нажми!" Нажимаю эту кнопку мышкай, появляется надпесь "Привет Мир!". |
Дело в том, что в этой книге подобные программы есть. Вот пример такой программы. Окно без кнопки с простейшей функциональностью. Попробуйте в этом разобраться, а потом дальше двинемся.
#include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char cname[]="Class"; char title[]="Наше первое окно"; MSG msg; //структура для регистрации класса окон WNDCLASS wc; wc.style = 0; wc.lpfnWndProc = (WNDPROC)WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = 0; wc.lpszClassName = cname; //регистрируем класс if(!RegisterClass(&wc)) return 0; //создать окно HWND hWnd = CreateWindow( cname, //класс title, //заголовок WS_OVERLAPPEDWINDOW, //стиль окна 0, //координата X 0, //координата Y 500, //ширина окна 300, //высота окна NULL, //дескриптор окна-родителя NULL, //дескриптор меню hInstance, //идентификатор приложения NULL); //указатель на структуру, посылаемую //по сообщению WM_CREATE //проверим, создалось ли окно if (!hWnd) return 0; //показать окно ShowWindow(hWnd, nCmdShow); //обновить содержимое окна UpdateWindow(hWnd); //цикл обработки сообщений while (GetMessage(&msg, NULL, 0, 0)) { //транслировать коды виртуальных клавиш в ASCII-коды TranslateMessage(&msg); //переправить сообщение процедуре окна DispatchMessage(&msg); } return 0; }; //процедура окна LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { //сообщение при создании окна case WM_CREATE: break; //сообщение при закрытии окна case WM_DESTROY: //необходимо, чтобы выйти из цикла обработки сообщений PostQuitMessage(0); break; //сообщение приходящее при перерисовки окна case WM_PAINT: break; //возврат не обработанных сообщений default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } |
vladislav я в програмировании начинающий и хотелбы задать глупый вопрос, а куда этот текст надо вставить чтобы посмотреть пример, желательно по подробней. |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |