Russian Qt Forum
Май 01, 2024, 17:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT и WinAPI  (Прочитано 4693 раз)
npopok
Гость
« : Февраль 20, 2006, 16:28 »

Решил я cpp-шный свой старый файл с определением класса  в новый проект QT вставить, чтобы и кнопочки легко создавать и старыми функциями пользоваться.QT совсем не знаю.Так он мне выдал 100 ошибок и все они с Winioctl.h связаны.Ошибки такого плана:
error C2146: syntax error : missing ';' before identifier 'Size'
и
 error C2501: '_STORAGE_HOTPLUG_INFO::DWORD' : missing storage-class or type specifiers
Может кто знает в чем дело?
Записан
Steven_Orko
Гость
« Ответ #1 : Февраль 20, 2006, 18:15 »

Цитата: "npopok"
Решил я cpp-шный свой старый файл с определением класса  в новый проект QT вставить, чтобы и кнопочки легко создавать и старыми функциями пользоваться.QT совсем не знаю.Так он мне выдал 100 ошибок и все они с Winioctl.h связаны.Ошибки такого плана:
error C2146: syntax error : missing ';' before identifier 'Size'
и
 error C2501: '_STORAGE_HOTPLUG_INFO::DWORD' : missing storage-class or type specifiers
Может кто знает в чем дело?

Кто "он"? Думаю, что имеется ввиду компилятор. Какой? У меня в Msdn такого номера ошибки (error C2501) нет, а msdn-ка одна из свежих.

Цитировать
Error Message C2146
syntax error : missing 'token' before identifier 'identifier'

The compiler expected token and found identifier instead. Possible causes:

Spelling or capitalization error.

Missing type specifier in the declaration of the identifier.

This error may be caused by a typographical error. Error C2065 usually precedes this error.

Код:
// C2146.cpp
class CDeclaredClass {};

class CMyClass {
   CUndeclared m_myClass;   // C2146
   CDeclaredClass m_myClass2;   // OK
};

int main() {
   int x;
   int t x;   // C2146 : missing semicolon before 'x'
}


This error can also be generated as a result of compiler conformance work that was done for Visual Studio .NET 2003: missing typename keyword. See Summary of Compile-Time Breaking Changes for more information.

The following sample compiles in Visual Studio .NET 2002 but will fail in Visual Studio .NET 2003:

Код:
// C2146b.cpp
// compile with: /c
template <typename T>
struct X {
   struct Y {
      int i;
   };
   Y memFunc();
};

template <typename T>
X<T>::Y func() { }   // C2146

// OK
template <typename T>
typename X<T>::Y func() { }


You will also see this error as a result of compiler conformance work that was done for Visual Studio .NET 2003: explicit specializations no longer find template parameters from primary template.

The use of T from the primary template is not allowed in the explicit specialization. For code to be valid in the Visual Studio .NET 2003 and Visual Studio .NET versions of Visual C++, replace all instances of the template parameter in the specialization with the explicitly specialized type.

See Summary of Compile-Time Breaking Changes for more information.

The following sample compiles in Visual Studio .NET but will fail in Visual Studio .NET 2003:

Код:
// C2146_c.cpp
// compile with: /c
template <class T>
struct S;

template <>
struct S<int> {
   T m_t;   // C2146
   int m_t2;   // OK
};

Записан
npopok
Гость
« Ответ #2 : Февраль 21, 2006, 12:29 »

Дело не в самой ошибке,если можно так сказать. Не QT-шный проект компилируется легко, да и файл Winioctl.h я не менял. Просто когда я в проект QT добавляю файл, написанный на WINAPI? эта ошибка вылезает. Может так вообще делать нельзя?может опции какие поменять надо-я не знаю. Написать более понятно тоже затрудняюсь.
 У меня есть готовый класс NDevice.Мне хочется в QTпроекте писать так NDevice dev; dev.SendCommand(бла-бла-бла). Это возможно?
Записан
Steven_Orko
Гость
« Ответ #3 : Февраль 21, 2006, 14:20 »

Нет, можно. Тролли по этому поводу писали где-то, что их классы должны добавляться первыми. Попробуй последовать их совету. Может сработает?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.