Biblioteka #include <mmsystem.h> nie działa z "Unitami"

dział ogólny

Biblioteka #include <mmsystem.h> nie działa z "Unitami"

Nowy postprzez lukagrom » sobota, 23 grudnia 2017, 15:12

Trochę w kategorii ciekawostek niż problemu (można to obejść). Tworząc nowy unit (New->Unit), gdzie chyba najczęście gromadzi się zewnętrzna klasy i funkcje, nie można dołączyć biblioteki - #include <mmsystem.h> W przypadku starszych "Builderów" pokazuje ponad 50 błędów w pliku - mmsystem.h, natomiast w najnowszych środowiskoacj również kilkadziesiąt błędów, tyle że w pliku - mmsyscom.h. Mniej więcec coś takiego:


[bcc32 Error] mmsyscom.h(113): E2139 Declaration missing ;
Full parser context
v_mmsystem.h(2): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsystem.h
mmsystem.h(35): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsyscom.h
[bcc32 Error] mmsyscom.h(114): E2238 Multiple declaration for 'DWORD'
Full parser context
v_mmsystem.h(2): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsystem.h
mmsystem.h(35): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsyscom.h
[bcc32 Error] mmsyscom.h(113): E2344 Earlier declaration of 'DWORD'
Full parser context
v_mmsystem.h(2): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsystem.h
mmsystem.h(35): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsyscom.h
[bcc32 Error] mmsyscom.h(114): E2139 Declaration missing ;
Full parser context
v_mmsystem.h(2): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsystem.h
mmsystem.h(35): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsyscom.h
[bcc32 Error] mmsyscom.h(115): E2238 Multiple declaration for 'DWORD'
Full parser context
v_mmsystem.h(2): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsystem.h
mmsystem.h(35): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsyscom.h
[bcc32 Error] mmsyscom.h(113): E2344 Earlier declaration of 'DWORD'
Full parser context
v_mmsystem.h(2): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsystem.h
mmsystem.h(35): #include c:\program files\embarcadero\studio\18.0\include\windows\sdk\mmsyscom.h


Co ciekawe problem mija, jeżeli zamiast nowego unita, wskaże się powstanie/dołączanie do projektu nowego "headera" (plik .h), który będzie korzystał z powyższej biblioteki (#include <mmsystem.h>) Kompilacja przebiega wtedy bez problemu.
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 39
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 5
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 6
Gadu Gadu: 0
    Windows VistaChrome

Re: Biblioteka #include <mmsystem.h> nie działa z "Unitami"

Nowy postprzez polymorphism » sobota, 23 grudnia 2017, 18:24

Spróbuj przed <mmsystem.h> dać <windows.h>.
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
lukagrom
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2145
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 197
System operacyjny: Windows 7 Pro
Windows 8.1
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
Gadu Gadu: 0
    Windows 7Firefox

Re: Biblioteka #include <mmsystem.h> nie działa z "Unitami"

Nowy postprzez lukagrom » sobota, 23 grudnia 2017, 19:37

Rzeczywiście pomogło.
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 39
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 5
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 6
Gadu Gadu: 0
    Windows VistaChrome

Re: Biblioteka #include <mmsystem.h> nie działa z "Unitami"

Nowy postprzez lukagrom » wtorek, 26 grudnia 2017, 12:17

Dla ciekawostki, analogiczna sytuacja występuje w Visual C++ (u mnie Express Edition 2008).
Samo #include <mmsystem.h> dołączone do programu wywala błędy, jeżeli dołączy się wcześniej #include <windows.h> aplikacja kompluje się bez przeszkód.
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 39
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 5
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 6
Gadu Gadu: 0
    Windows VistaChrome

Re: Biblioteka #include <mmsystem.h> nie działa z "Unitami"

Nowy postprzez polymorphism » środa, 27 grudnia 2017, 12:00

Jest tak samo, bo autor tych nagłówków jest ten sam - microsoft. A jak piszesz coś z wykorzystaniem funkcji WinAPI, to prawie zawsze musisz załączyć plik <windows.h>.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2145
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 197
System operacyjny: Windows 7 Pro
Windows 8.1
Kompilator: Visual Studio 2015 Community
CodeLite (MinGW)
MSYS2 (MinGW, clang)
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron