Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)? / 25 сообщений из 49, страница 1 из 2
10.08.2012, 05:02
    #37911538
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Тяжелый конечно вопрос, но таки об этом задумался.
Думаю о Windows Forms Application VB.NET и о С (#.NET ???)
Вкратце(если получится вкратце):

1) VB6 - для меня USER интерфейс.
Придерживаюсь строго стиля текущей WIN OS без самодеятельностей, как правило модифицирую имеющиеся контролы (реже создаю) через API - хитрости, манифесты - для стиля, 32-битные иконки через ResHacker, всякие там WinProc и т.п. Ну в целом все красоты решаются -большим объемом нестандартных работ.
2) Использую API для решения ряда других прикладных вопросов. В частности очень много GDI+/-
3) В основном приложение VB6 состоит из форм и кучи модулей, классы терпеть не могу (использую наверно 2-3шт CMultiFrameImage от Бенедикта, ClsText, Splitter) и плохо в них разбираюсь, хотя в том же сплиттере и CMultiFrameImage модифицировал немало. OCX-ов никогда не писал, чужими (включая от Microsoft ) стараюсь не пользоваться, ActiveX.EXE не понял и не хочу, люблю CreateObject и оч. не люблю раннее связывание.
4). Использую БД аля MS Access через MS ADO и не о каких SQL и прочем слышать не хочу, мне достаточно.
5). Оч. люблю использовать Shell(proga.exe) и ShellAndContinue(proga.exe) -модификация Shell с контролем ожидания завершения вызванного процесса - как с системными, так и с нек. другими утилитами.

Ну, топиков моих тут много даб все это проиллюстрировать.

Если я правильно понимаю, новые VB/C(#?).NET + Windows Forms Application сильно облегчат создание красоты в части п.1.
Но при этом совсем без API все же думаю не обойтись. Ну т.е. все API, приемы и т.п. что я использую в VB хотелось бы иметь возможность также красиво использовать при необх.
Потом новые всякие прибамбасы. Какие-нибудь Ribbons (родные, от Win7) на VB6 небось при всем желании не вставишь -просто пример привел.

В пользу VB.NET думаю то, что язык хоть и отличается, но примерно такой же, т.е. если тупо пытаться переписывать имеющиеся чисто-VB6 проекты на VB.NET, то это сильно проще чем на C++#.

Но есть ряд подводных камней. Я много работаю с телефонией и использую в частности OpalVoip , при этом уж не знаю хвастаться или стыдиться, даже перечислен в списке разработчиков и имею доступ к репозиторию(сам правда править коды на сайте через SVN так и не научился - мож оно и к лучшему, а то еще понапорчу).
Стыдиться, это потому что C++ практически не знаю. Хотя умею тестировать и модифицировать имеющийся код библиотеки или консольного приложения.
Но стоит вопрос как пририсовать "морду" к приложению.
Если что-то запускаю из под VB6, генерирую из под VB6 "командный" файл и в зацикленном C++ консольном приложении использую конструкции типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
void TheProga::Main()
{
...
  for (;;) {
    PThread::Sleep(500);
    if( (_access( "the.file", 0 )) != -1 ){
      DeleteFile("the_file");
      //далее следует код куда звонить и чего делать...



Ну, аналогично, если C++ генерирует событие, то пуляет файл в сторону VB6, а VB6 ждет файл по таймеру и отображает что-нибудь на форме:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
void MySIPEndPoint::OnRegistrationStatus(const PString &aor, PBoolean wasRegistering, PBoolean reRegistering, SIP_PDU::StatusCodes reason)
{
  if (reason == SIP_PDU::Information_Trying)
    return;
  PString FNM;
  FNM = aor.Left(aor.Find(';'));
  ofstream outfile(FNM + ".rrg");
  if (reason == SIP_PDU::Successful_OK)
    outfile << "Registered OK\n";
  else
    outfile << "Not Registered (" << reason << ")\n";
  outfile.close();
}


Попытки установить прозрачное взаимодействие между VB6 и C++ давно закончились ничем, и до сих пор к этому не возвращался. Пока "пуляем файлы".
Жить конечно можно, живу, но все это сильно "тормозит развитие", и если нагрузка большая, то надежность приложения сильно снижается. Любой нормальный программист-профи обсмеет.
Если например, писать софтфон (идея как бы есть) с кучей кнопок и действий типа play/record/dial/hangup, то "форма-морда" и "интеллект-начинка" должны быть реализованы в рамках одного exe.
Т.е. по идее и в идеале хотелось бы (Я нарочно смешал C++ и VB6 код для иллюстрации желаемого решения типичной задачи):
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
void MySIPEndPoint::OnRegistrationStatus(const PString &aor, PBoolean wasRegistering, PBoolean reRegistering, SIP_PDU::StatusCodes reason)
{
  if (reason == SIP_PDU::Information_Trying)
    return;
  if (reason == SIP_PDU::Successful_OK)
    Form1.LabelStatus.Caption = "Registered OK"
  else
    Form1.LabelStatus.Caption = "Not Registered (" & reason & ")"
}


Начинка на C, значит наверно нужен C(#).NET для формы. Это в пользу C.

Хотя Windows Forms Application в VC2005 EE на дурака даже в примитиве с одной кнопкой типа Dial пока прикрутить не удалось.
В примерах есть OpenPhone но он использует WxWigest -так понял "левая морда", слышал еще про MFC, но сдается что это не то и для виндов (чтоб просто и по стандарту) нужен WinForms.
===
Еще проблемы, которые периодически всплывают - уж не знаю насколько относится к вопросу - многопользовательская среда, запуск приложения под обычным юзером (я злоупотребляю админом), при этом настройки приложение хранит в CURRENT_USER и в HKEY_USERS\.DEFAULT\Software (для WIN Service кот. скажем прямо не совсем настоящий), данные прога хранит в /Program Files/Proga/etc. что подозреваю неправильно. Пользователей у кот. возникают иногда проблемы (в основном на серверах, куда лазют разные юзеры под своими терминалами), кормлю советами-затычками, что в прочем обычно помогает.
===

Таковы в общих чертах "проблемы мировой революции".
Ну т.е. в каком направлении мне посоветуете двигаться. C ? VB ? NET?
Для C стоит VC2005EE. Я так понимаю это называется C#. Не?

Если VB.NET, то чего ставить? Рабочая система - XP и думаю надолго, от вистов глаза рябит. Но проги должны работать (ну это рынок) соотв. up to WIN7 x64 и выше со всеми Themes (что впрочем худо-бедно и с VB6 правдами и неправдами достигнуто).
Крайняя попытка более менее серьезно ставить VB.NET была этак году в 2005, восторгов VB.NET не вызвала, правда стоит чего-то на нотебуке.

Чего не хочу, так это глубоко закопаться в что-то новое а потом понять что это не то что надо.
...
Рейтинг: 0 / 0
10.08.2012, 08:58
    #37911606
Ух0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Дмитрий77,

Дим, отсыпь мне немного курева своего)
...
Рейтинг: 0 / 0
10.08.2012, 14:13
    #37912252
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Ух0отсыпь мне немного курева своего)
Да, кури пожалуйста .
Только я вообще-то жду не ответов в духе "дискриминация VB6", а рекомендаций от людей хорошо знающих VB6, но при этом знакомых с разными системами програмирования.
...
Рейтинг: 0 / 0
10.08.2012, 14:19
    #37912260
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
сложно что-то посоветовать. я так понимаю, что ты ищешь замену для своей конкретной программы. но беда в том, что программирование под .NET потребует от тебя полной переделки твоего текущего решения с отказом от уже существующего кода и прочих используемых библиотек. скорей всего, придётся писать с "0" с использованием существующих сборок из net framework. работа с неуправляемым кодом в том же NET (а у тебя это C dll) достаточно запутана и C# совсем не C/C++.
...
Рейтинг: 0 / 0
10.08.2012, 14:22
    #37912265
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
в любом случае, советую сразу переходить на C#. т.к. VB.NET , как это не прискорбно, совсем не VB6 по простоте, а лишь внешнее подобие простоты, хотя по сути это тот же C#, только со своеобразным синтаксисом.
...
Рейтинг: 0 / 0
10.08.2012, 15:07
    #37912352
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Konst_Oneсложно что-то посоветовать. я так понимаю, что ты ищешь замену для своей конкретной программы....переделки твоего текущего решения ... VB.NET , как это не прискорбно, совсем не VB6 по простоте
Вот смотри. Что касается своих "чисто VB6 приложений", я как-то не сомневаюсь, что попотев и аккуратно переписав их заново, я смогу их переписать на VB.net (ну естественно наивно рассчитывать на "горе-мастеров"). Ну, допустим набью руку, научусь делать "красоту" меньшей ценой, заплатив б'ольшую цену за переделку/обучение но будет тоже самое. В принципе, мои VB6 проекты на достаточно хорошем уровне и можно пока об этом не думать.

Более интересна вторая часть, где я привожу пример как у меня "форма-морда" (на VB6) общается с "начинкой-консольным приложением C++" и чего бы мне хотелось.
Я хочу создать форму, нарисовать на ней кнопку и вызвать функцию из Opal.
На VB.NET я этого не сделаю. Так? API отдыхают - тупиковый вариант.

Konst_Oneработа с неуправляемым кодом в том же NET (а у тебя это C dll) достаточно запутана и C# совсем не C/C++.советую сразу переходить на C#.

Разжуй пожалуйста.
У меня есть ptlib.dll/opal.dll . Это C/C++. Так? Думаю ДА. Практически все имеющиеся примеры -консольные приложения.
Все это компилируется в Visual C++ 2005 Express Edition.
Там же можно создать
File -> Add new Project -> CLR -> Windows Form Application
Windows Form Application - это что C#.NET ???
Что мне надо сделать, чтоб начать чего-то понимать?
Я хочу создать форму, нарисовать на ней кнопку и вызвать функцию из Opal.
Это возможно?
И что это будет? Сборная солянка из C#.NET(для WinForm) и C/C++ для начинки? Или я чего-то не догоняю
в смысле
Konst_One C# совсем не C/C++.
Примеров с Windows Form Application в Opal нет, есть пример с mfc (на VC++ 2005 EE естественно не компилируется), причем структура файлов проекта очень похожа на структуру Windows Form.
М.б. попытаться по аналогии c mfc проектом пристыковать тестовый Windows Form к Opal?
Ну т.е. мне не от чего пока оттолкнуться.

Да еще.
У меня рабочий комп XP. VC++ 2005 EE Для моих тек. целей он работает "как надо".
Если я установлю VC++ 2010 EE параллельно (как выяснилось, для новых версий того же Opal 2005-й уже не поддерживается), то работа VC++ 2005 EE не нарушится? Типичные нарушения, это когда отлаженные проги при компиляции лезут не туда, а при переносе на другой комп почему-то перестают запускаться и т.п.
...
Рейтинг: 0 / 0
10.08.2012, 15:17
    #37912369
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
попробую немного объяснить.

в VB6 для использования API ф-й используется Declare , в C# для этого используется DllImport

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
using System;
using System.Runtime.InteropServices;

class Example
{
    // Use DllImport to import the Win32 MessageBox function.
    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);

    static void Main()
    {
        // Call the MessageBox function using platform invoke.
        MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);
    }
}
...
Рейтинг: 0 / 0
10.08.2012, 15:18
    #37912373
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
...
Рейтинг: 0 / 0
10.08.2012, 15:21
    #37912376
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Взаимодействие с неуправляемым кодом: http://msdn.microsoft.com/ru-ru/library/sd10k43k.aspx
...
Рейтинг: 0 / 0
10.08.2012, 15:22
    #37912380
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
http://msdn.microsoft.com/ru-ru/library/0h9e9t7d.aspx

тут картинка , описывающая вызов ф-ии из DLL
...
Рейтинг: 0 / 0
10.08.2012, 15:24
    #37912385
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Дмитрий77я вообще-то жду не ответов в духе "дискриминация VB6", а рекомендаций от людей хорошо знающих VB6 чё, блин, за камень в мой огород?)
...
Рейтинг: 0 / 0
10.08.2012, 15:24
    #37912386
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
на счёт "сборной солянки": С++ совместно c C#. основные вещи у тебя так и останутся в твоих c++ dll
...
Рейтинг: 0 / 0
10.08.2012, 15:32
    #37912400
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Konst_Oneв VB6 для использования API ф-й используется Declare , в C# для этого используется DllImport
Это я все понимаю.
Но к теме отношения не имеет, я не хочу использовать API, я считаю что в Opal нормальных нет. Попытки 2-х летней давности использовать эти API с VB6 закончились ни чем.

Если есть консольное приложение, компилируемое в VC++ 2005, то оно не использует API .
Оно использует
1) Tools -> Options -> Project and Solutions -> VC++ Directories -> ccылки на include и Library Files (ведут в директории Opal и PtLib)
2) всякие там
#include <ptlib.h>
#include <opal/console_mgr.h>
в файлах самого exe.

Я хочу сделать приложение, но не консольное, а Windows Forms Application(с мордой). В этом собственно и вопрос.
...
Рейтинг: 0 / 0
10.08.2012, 15:36
    #37912407
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
более-менее теперь ясно. но тут только пробовать надо. я с opal не работал, трудно сказать, что там не так и почему их api нельзя заюзать. в .NET можно в одном проекте делать винегрет из C++ и C#. надо пробовать.
...
Рейтинг: 0 / 0
10.08.2012, 15:53
    #37912436
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Konst_Oneв .NET можно в одном проекте делать винегрет из C++ и C#. надо пробовать.
Вот это я наверно и хотел услышать.


Вот это попробовать? Разумно?
Konst_OneЯ хочу создать форму, нарисовать на ней кнопку и вызвать функцию из Opal.
VC++ 2005 EE
Там же можно создать
File -> Add new Project -> CLR -> Windows Form Application
Windows Form Application - это что C#.NET ???
...
попытаться по аналогии c mfc проектом пристыковать тестовый Windows Form к Opal?
Потому как если это получится, то уже есть что-то под ногами.
И тогда можно потихоньку изучать WinForms + C#. Видимо методом перегонки наработок на VB6 в новую среду.
...
Рейтинг: 0 / 0
10.08.2012, 15:57
    #37912443
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
лучше VS 2010 , т.к. 3.5 FW
...
Рейтинг: 0 / 0
10.08.2012, 15:58
    #37912448
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
хотя , надо посмотреть что там на XP у тебя можно поставить из NET FW.
...
Рейтинг: 0 / 0
10.08.2012, 16:10
    #37912467
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Konst_Oneлучше VS 2010 , т.к. 3.5 FW
3.5FW у меня и так стоит, хотя мало чего в этом понимаю.
Волнует вот это:
Дмитрий77Да еще.
У меня рабочий комп XP. VC++ 2005 EE Для моих тек. целей он работает "как надо".
Если я установлю VC++ 2010 EE параллельно (как выяснилось, для новых версий того же Opal 2005-й уже не поддерживается), то работа VC++ 2005 EE не нарушится? Типичные нарушения, это когда отлаженные проги при компиляции лезут не туда, а при переносе на другой комп почему-то перестают запускаться и т.п.
Думаю сначала надо смухлевать хоть что-то на рабочем VC++ 2005 EE, а потом уже думать об VC 2010
...
Рейтинг: 0 / 0
10.08.2012, 16:14
    #37912476
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
попробуй, я бы сразу с VS2010 начал
...
Рейтинг: 0 / 0
10.08.2012, 18:04
    #37912653
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Дмитрий77Если я установлю VC++ 2010 EE параллельно (как выяснилось, для новых версий того же Opal 2005-й уже не поддерживается), то работа VC++ 2005 EE не нарушится?Нет. Вся линейка студий начиная с версии 6.0 прекрасно уживается на одном компе.
...
Рейтинг: 0 / 0
10.08.2012, 18:05
    #37912655
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Но лучше начинать их устанавливать по старшинству.
...
Рейтинг: 0 / 0
10.08.2012, 18:32
    #37912686
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Ну, смухлевать чего-нибудь на VC++2005 "самому" не получилось:
Все попытки кончаются так:
1>c:\ptlib\include\ptlib\msos/ptlib/contain.h(289) : error C2373: 'WinMain' : redefinition; different type modifiers

AntonariyНо лучше начинать их устанавливать по старшинству.
В смысле? Сейчас стоит VC++ 2005 EE, хочу установить 2010

В OPAL сейчас узрел вот это:
Added .NET sample,
Так понимаю есть только проект для VS2010
Из описания следует:
TO USE OpalDotNET:

Simply reference the OpalDotNet.dll or the project inside your .NET project. You must compile the opal and ptlib
dlls yourself, and put them in the executing directory of your application using OpalDotNet.dll.

Also, it is not necessary to use the Opal_API structures directly. The OpalContext.cs file contains the wrappers and context for your to use.
These classes will handle marshaling the data back and forth between managed and unmanaged types.

Happy Coding!


М.б. то что нужно, надо пробовать.
Гм, м.б. даже для VB.NET прокатит?

OK, хочу установить 2010.
Konst_Oneв .NET можно в одном проекте делать винегрет из C++ и C#. надо пробовать.
Пошел типа посмотреть чего качать, и теперь вообще в ступоре.
http://www.microsoft.com/visualstudio/ru-ru/products/2010-editions/visual-cpp-express (вкладка "загрузка")

CLIPs для Visual Studio поддерживает следующие продукты:
...
•Visual Basic 2010 Express
•Visual C# 2010 Express

•Visual C++ 2010 Express...

Я вообще-то думал что есть "Visual C++" компилятор и в нем можно делать вышеобозначенный винигрет из C, C++ и C#.
Теперь вообще ничего не понимаю, чего устанавливать, куда иттить.
Так понимаю для компиляции Opal мне нужен C++.
При этом VC++ net. win формы тоже поддерживает.
А коим боком тогда VC#?
...
Рейтинг: 0 / 0
10.08.2012, 18:38
    #37912695
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Express вряд ли позволит делать винигреды. Найти пиратку.
...
Рейтинг: 0 / 0
10.08.2012, 18:57
    #37912714
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Antonariy,
>Express вряд ли позволит делать винигреды
А что тогда есть винигред?
М.б. их тогда сразу делать из "VB.NET & C++" а не "C# & C++"?

Я так теперь понял, C++.NET тоже есть и именно он используется в VC++ для WinForms...? так зачем мне тогда C#?
...
Рейтинг: 0 / 0
10.08.2012, 19:35
    #37912759
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)?
Дмитрий77 М.б. их тогда сразу делать из "VB.NET & C++" а не "C# & C++"?Если в будущем ты собираешься заниматься только собственными проектами, старыми или новыми, то почему нет? Если же будешь наниматься, то увидишь, что vb.net практически никому не нужен.
Дмитрий77Я так теперь понял, C++.NET тоже есть и именно он используется в VC++ для WinForms...? так зачем мне тогда C#?Если выполняется первое условие, то писать на нем не обязательно, но понимать его надо, потому что на нем написано 90% открытого кода под .net.
Хотя я нашел одну нужную библиотечку на c#, которую проще допилить, чем перепилить на vb. Но там ад IE и бездна COM.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / На какой другой язык переходить? Windows Forms Application? VB.NET? С (#.NET ???)? / 25 сообщений из 49, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]