Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > com-port


Автор: Brain 10.12.2006, 11:49
Ситуация примерно следующая: я написал прогу которая использует ком-порт на C++(WinAPI), но людей, которым я писал не устроил интерфейс, поэтому решил переписать прогу на C#. У меня есть готовый класс работы с комом на С++. Помогите мне его вставить в прогу на С# или научите использовать com в шарпе(предпочтителен второй вариант). На С++ пишу 2 года, а вот опыта работы в C# практически нет(2 нед), поэтому если можно, опишите подробнее, и хотелось бы с примерами. Заранее спасибо!
ЗЫ: Просьба не посылать на MSDN.

Автор: mr.DUDA 10.12.2006, 12:27
Нашёл примеры на Managed C++ и VB.NET:

http://www.codeproject.com/vb/net/Comport_made_simple.asp
http://www.codeproject.com/managedcpp/howtocomport.asp

Автор: Brain 10.12.2006, 13:09
Тогда еще вопрос. Как использовать WinAPI в C#? Только extern из Kernel или можно как-то подругому?

Автор: mr.DUDA 10.12.2006, 13:11
Функции из WinAPI подключаются через [DllImport], в любом случае. Иногда есть готовые классы, как бы делающие "то же самое на C#", но внутри они также используют дллимпорт smile.

Автор: Brain 10.12.2006, 13:41
А в шарпе вообще есть DllImport ? компилятор матерится: "The type or namespace name 'DllImport' could not be found (are you missing a using directive or an assembly reference?)"

Можешь написать как импортировать правильно?

Автор: mr.DUDA 10.12.2006, 14:38
Код
using System;
using System.Runtime.InteropServices

...

class SomeClass
{
   [DllImport("user32.dll")]
   public static extern int SendMessage (IntPtr hwnd, int msg, int lParam, int wParam);

...


Добавлено @ 14:40 
P.S. кстати, если работаем в VS 2005, то если что-то не компилится из-за того что не хватает using-а, достаточно стать курсором на неизвестный класс/атрибут (как этот DllImport), нажать Ctrl+Alt+F10, Enter -- и нужный using добавится в начало файла. Известные классы/атрибуты/т.п. подсвечиваются зеленоватым цветом; неизвестные - чёрным.

Добавлено @ 14:42 
P.S(2) уже много раз выкладывал этот линк, но ещё раз (вдруг пригодится smile): http://www.pinvoke.net

Автор: Dottik 10.12.2006, 16:38
Shft + Alt + F10 smile

Автор: mr.DUDA 10.12.2006, 23:06
Упс, пардон... smile Да, действительно, настолько часто использую что даже не задумываюсь какие клавиши нажимаю. Короче, суть в том что юзаются смарт-теги (как в офисе), а этот хоткей раскрывает контекстное меню, чтоб мышой не надо было тыкать по смарт-тегу  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)