Udostępnij za pomocą


Błąd kompilatora zasobów RC2101

Nieprawidłowa dyrektywa w wstępnie przetworzonym pliku RC

Uwagi

Plik kompilatora zasobów zawiera dyrektywę #pragma .

Użyj dyrektywy #ifndef preprocesora z stałą RC_INVOKED, którą kompilator zasobów definiuje podczas przetwarzania pliku dołączania. Umieść dyrektywę #pragma wewnątrz bloku kodu, który nie jest przetwarzany, gdy zdefiniowano stałą RC_INVOKED. Kod w bloku jest przetwarzany tylko przez kompilator języka C/C++, a nie przez kompilator zasobów. Poniższy przykładowy kod demonstruje tę technikę:

#ifndef RC_INVOKED
#pragma pack(2)  // C/C++ only, ignored by Resource Compiler
#endif

Dyrektywa preprocesora #pragma nie ma znaczenia w obiekcie . Plik RC. Dyrektywa preprocesora #include jest często używana w obiekcie . Plik RC do uwzględnienia pliku nagłówka (niestandardowego pliku nagłówka opartego na projekcie lub standardowego pliku nagłówka dostarczonego przez firmę Microsoft z jednym z jej produktów). Niektóre z nich obejmują pliki zawierają dyrektywę #pragma . Ponieważ plik nagłówkowy może zawierać co najmniej jeden inny plik nagłówkowy, plik zawierający dyrektywę #pragma o przestępstwach może nie być natychmiast oczywisty.

Technika #ifndef RC_INVOKED może kontrolować, w tym pliki nagłówkowe w plikach nagłówków opartych na projekcie.