Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: Firefox от Март 21, 2011, 23:02



Название: namespase System
Отправлено: Firefox от Март 21, 2011, 23:02
Здравствуйте. хочу использовать в проекте  namespaсe System, но компилятор пишет, что не знает такого namespaсe. почитала форумы нашла несколько советов:
Project -> Properties -> Configuration Properties -> General -> Common Language Runtime Support -> Pure MSIL Common Language Support
поставить. но у меня в  настройках проекта нет вкладки Common Language Runtime Support...
стоит qt 4.3.3 Visual Studio 2003.NET
много чего начитала и в голове полная каша. просьба объяснить для чайника как подключить это пространство имен и правильно настроить проект.


Название: Re: namespase System
Отправлено: Firefox от Март 22, 2011, 10:30
using namespace System  не выдает больше ошибку, добавила
 #using <mscorlib.dll> .
но теперь надо использовать using  System.Management; но Management компьютер не распознает в System. если кто знает подскажите как продолжить далее


Название: Re: namespase System
Отправлено: brankovic от Март 22, 2011, 13:47
Я так понимаю, что namespace System это что-то из .NET framework. А Qt это C++ библиотека. Их вообще нельзя смешать.


Название: Re: namespase System
Отправлено: Авварон от Март 22, 2011, 14:19
Не, можно конечно. Только это будет не обычный с++, а managed c++ со всякими хэндлами - веселые конструкции типа
Код:
String ^ string = _gc_new String
(Крышечка - это у них указатель такой, мусоросборный)
Начинать не советую - худо будет.


Название: Re: namespase System
Отправлено: brankovic от Март 22, 2011, 14:26
Не, можно конечно. Только это будет не обычный с++, а managed c++ со всякими хэндлами - веселые конструкции типа
Код:
String ^ string = _gc_new String
(Крышечка - это у них указатель такой, мусоросборный)
Начинать не советую - худо будет.

а менеджет C++ это уже дотнет? Я так думал, что C# это дотнет, а менеджед не дотнет..


Название: Re: namespase System
Отправлено: Пантер от Март 22, 2011, 14:27
Код:
String ^ string = _gc_new String
(Крышечка - это у них указатель такой, мусоросборный)
Прям как в паскале. :)


Название: Re: namespase System
Отправлено: Авварон от Март 22, 2011, 14:55
ну сам по себе язык не дотнет, но нафига он без дотнета нужен?:)


Название: Re: namespase System
Отправлено: panAlexey от Март 22, 2011, 17:49
Код:
String ^ string = _gc_new String
(Крышечка - это у них указатель такой, мусоросборный)
Прям как в паскале. :)
на паскале помнится надо писать не "=", а ":=" что раздражает..


Название: Re: namespase System
Отправлено: Firefox от Март 24, 2011, 10:57
В общем-то мне нужно реализовать вот этот код:
Код:
#include <iostream>
#include "windows.h"
#using <mscorlib.dll>
#using <System.Management.dll>

#include <WbemIdl.h>
#include <mmreg.h>
#include <dsound.h>
#include "initguid.h"
#include <QTimer>
#include <set>
using namespace std;
using namespace System;
using  namespace System::Management;
#define _WIN32_DCOM

ManagementObjectSearcher *searcher;
searcher= new ManagementObjectSearcher();

     Query = new Management::ObjectQuery("SELECT Name FROM Win32_SoundDevice WHERE StatusInfo = 3");   

ManagementObjectCollection *coll = searcher->Get(); 
if (coll != NULL) 





        ui.lineEdit_2->setText("Микрофон подключен к комрьютеру");
}
но на ManagementObjectSearcher  вылазит куча ошибок. у меня VS2003.NET а все советы в инете по настройке от 2007.Net и выше.
ошибки выдает типа
c2872 ManagementObjectSearcher ambiguous symbol
идалее на этотже класс остальные все.
если кто-то знает другой способ как определить подключен ли микрофон к компьютеру поделитесь.
waveInGetNumDevs() из winapi не определяет!!!!


Название: Re: namespase System
Отправлено: Пантер от Март 24, 2011, 11:03
Можно попробовать на винапи пробежаться по списку подключенных устройств и посмотреть их свойства.


Название: Re: namespase System
Отправлено: Firefox от Март 24, 2011, 13:57
мне ндо проверять состояние микрофона каждые пол секунды(запись с микрофона начинается по нажатии на микрофоне кнопки on и выключатся кнопкой off), да и никаких винампов на компе при сдаче работы быть не должно.


Название: Re: namespase System
Отправлено: pastor от Март 24, 2011, 15:28
винампов?

винапи != винамп


Название: Re: namespase System
Отправлено: Пантер от Март 24, 2011, 16:07
 ;D

WinApi


Название: Re: namespase System
Отправлено: Firefox от Март 24, 2011, 23:44
как всегда не так прочитала)))я же писала что функция из winApi результатов не дала. пробую функции с микшерами(mixcherId..... и тому подобные) как-то использовать, но пока результатов нет. если будут напишу. на счет свойств устройств аудио, то если waveInDevCaps() пользоваться то ничего это не даст. он выдает параметры микшеров на звуковой карте. а они не меняются при подключении микрофона(по крайне мере те параметры что просматривает эта функция)


Название: Re: namespase System
Отправлено: Пантер от Март 25, 2011, 08:16
> функция из winApi

Там в основном по 10 функций для одного и того же. Так что попробуй еще погуглить на эту тему.


Название: Re: namespase System
Отправлено: brankovic от Март 25, 2011, 08:31
а они не меняются при подключении микрофона(по крайне мере те параметры что просматривает эта функция)

Если микрофон подключается обычным джеком, то програмно увидеть подключение можно только если есть соотв. поддержка в звуковой карте (старые звуковухи не могут узнать, подключёно ли к ним что-нибудь). Кроме того, определить можно только физически вставлен ли джек, а не нажата ли кнопка "on" на микрофоне.


Название: Re: namespase System
Отправлено: Firefox от Март 29, 2011, 22:43
Спасибо. действительно нашли решение путем пайки контактов))