Решил я 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
};